【发布时间】:2020-12-09 03:20:53
【问题描述】:
我的 pieChart 旋转函数有问题。 当我将其称为主要威胁时,它的工作原理与预期完全一样,但是, 当我在协程中调用它时,它什么也不做。 我调试了代码,它进入了 spinWheel() 函数但不执行 pieChart.spin 函数。
这里是代码。
GlobalScope.launch {
while (!isSpinned) {
try {
rotationDegree = pieChart.rotationAngle - 270
if (rotationDegree > 40) {
isSpinned = true
pieChart.isRotationEnabled = false
pieChart.setTouchEnabled(false)
spinWheel(1800f + 270f + randNumber , 12000)
cancel()
}
delay(10)
} catch (ex: Exception) {
Log.d("TAG", "onCreate: " + ex)
}
}
}
private fun spinWheel(spinDegree: Float, duration: Long) {
pieChart.spin(duration.toInt(), 270f, spinDegree, Easing.EaseOutQuad)
}
我使用 'com.github.PhilJay:MPAndroidChart:v3.1.0' 库来制作饼图。
我从 catch 中得到“android.util.AndroidRuntimeException:动画器只能在 Looper 线程上运行”异常。在这种情况下,我真的需要在发生某些事情后调用这个函数,我该如何使用这个 spin 方法?
【问题讨论】:
标签: android kotlin pie-chart kotlin-coroutines