我正在尝试播放最简单的“动画”,让TextView说“foo”,等一下,再说“bar”。
问题是,不是看到标签很好地移动,而是冻结整秒,然后只是说出最后请求的文本。
val label = findViewById<TextView>(R.id.textView)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
label.text = "foo"
// some "label.update()" has to be called here
Thread.sleep(1000)
label.text = "bar"
}
在C#中我会通过在睡觉前添加“this.update()”来解决这个问题。但是,我在Android库中找不到任何类似的功能。
在函数完成之前,如何强制视图刷新其外观?
答案 0 :(得分:0)
问题在于它将主线程暂停1000ms。
你可以通过替换这两行来避免这种情况:
Thread.sleep(1000)
label.text = "bar"
......用这个:
Handler().postDelayed( { label.text = "bar" }, 1000)
还有其他方法,但这是最简单的,我想。