在 Kotlin 中单击按钮后每秒刷新自定义视图
Posted
技术标签:
【中文标题】在 Kotlin 中单击按钮后每秒刷新自定义视图【英文标题】:Refreshing custom view every second after cclicking button in Kotlin 【发布时间】:2021-11-11 21:53:03 【问题描述】:我用两个自定义视图创建了线性布局。
class myView1(context: Context?, attrs: AttributeSet?) : View(context, attrs)
...
override fun onDraw(canvas: Canvas?)..
class myView2(context: Context?, attrs: AttributeSet?) : View(context, attrs)
...
override fun onDraw(canvas: Canvas?)..
我有按钮。我想有这样的情况:
如果单击按钮:开始循环,每秒调用一次 onDraw(每秒刷新一次视图) 如果再次单击按钮:中断循环。我正在尝试使用 .invalidate(),但它不起作用。
如何调用创建该循环?
【问题讨论】:
【参考方案1】:我不能写评论,所以我会回答,你没有写出它是如何不起作用的invalidate()
方法,invalidate() problem,
无论如何,我添加了一个循环,您需要在其中调用invalidate()
var timer = Timer()
var isTimerWork = false
btn.setOnClickListener
if (isTimerWork)
isTimerWork = false
timer.cancel()
timer = Timer()
else
isTimerWork = true
timer.scheduleAtFixedRate(object : TimerTask()
override fun run()
// invalidate view
, 0, 1000)
【讨论】:
以上是关于在 Kotlin 中单击按钮后每秒刷新自定义视图的主要内容,如果未能解决你的问题,请参考以下文章
在 xcode 中的自定义视图中给出高度后刷新情节提要视图控制器