【发布时间】:2021-10-28 18:43:51
【问题描述】:
我创建了一条交互式线路,但这可能无关紧要。即使没有交互,这也会产生意想不到的结果:-
@Composable
fun PowerClock() {
var dynamicAngle by remember { mutableStateOf(90f.toRadians()) }
val angle by animateFloatAsState(targetValue = dynamicAngle)
Canvas(
modifier = Modifier
.fillMaxHeight()
.fillMaxWidth()
.pointerInput(Unit) { //Irrelevent, the results go wrong even without invoking this at all
coroutineScope {
while (true) {
// val touchDownPointerId = awaitPointerEventScope { awaitFirstDown().id }
detectDragGestures { _, dragAmount ->
dynamicAngle += atan(dragAmount.x / dragAmount.y)
}
}
}
}
) {
val length = 500
val path = Path().apply {
moveTo(size.width / 2, size.height / 2)
relativeLineTo(length * cos(angle), length * sin(angle))
}
drawPath(path, Color.Blue, style = Stroke(10f))
}
}
这是一个预览,
Cavnas 描绘的一个有趣的行为是,看看我的实现,角度应该根据x 和y 的变化而变化,对吧?但实际上, y 被忽略了。我已经测试过了。
这是Cavnas 中的错误还是我执行错误?
【问题讨论】:
-
我将删除它。我从来没有不尊重任何人的意思,但也许我们无法在网上判断语气的事实,可能会给上下文增加一些意想不到的微妙之处,无论如何,如果有人因为我而受到一点干扰或不尊重,我会感到非常内疚,所以我道歉,真诚的。
-
我只是好奇,是什么让你写这样的东西,而不仅仅是“我做错了什么还是 Compose 错误?”
标签: android kotlin canvas android-jetpack-compose android-jetpack-compose-modifier