我正在尝试制作RNG应用,并且想在我的动画运行时禁用我的Button。应该不会太复杂,因为我是Kotlin-App开发的初学者。 延迟后它崩溃了。
我已经用我的Animation尝试了其他方法,并尝试了setEnable()。
button_randomize.setOnClickListener {
textView_Number.text = (minRangeRandom..maxRangeRandom).shuffled().first().toString()
textView_Number.animate().setDuration(500).rotationBy(360f)
Timer().schedule(object: TimerTask(){
override fun run() {
button_randomize.isEnabled = false
}
},500)
button_randomize.isEnabled = true
}
我希望在动画完成之前禁用“随机化”按钮。目前,延迟结束后会崩溃。
答案 0 :(得分:0)
尝试下面的代码。
textView_Number.animate().setDuration(500).rotationBy(360f)
.withStartAction {
button_randomize.isEnabled = false
}.withEndAction {
button_randomize.isEnabled = true
}
答案 1 :(得分:0)
可能是因为Timer创建了一个新线程,并且TimerTask在该新线程上运行。
但是,Android UI框架不支持多线程。视图属性只能在主线程上更改。
要解决此问题,请使用其他方式延迟。这将在主线程上执行延迟的代码:
button_randomize.isEnabled = true
button_randomize.postDelayed({
button_randomize.isEnabled = false
}, 500)
答案 2 :(得分:0)
您可以添加一个动画侦听器,以了解它何时结束
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title> Fullscreen Div </title>
<style>
.test{
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 10;
}
</style>
</head>
<body>
<div class='test'>Some text</div>
</body>
</html>