【问题标题】:Refreshing custom view every second after cclicking button in Kotlin在 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(),但它不起作用。

如何调用创建该循环?

【问题讨论】:

    标签: android kotlin view


    【解决方案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)
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      相关资源
      最近更新 更多