我在 Jetpack Compose 中尝试过动画。我在旋转动画中遇到问题。
似乎一切都很好。但不知道为什么它不起作用。
我的代码:
@Composable
private fun RotateAnimationContent() {
val isRotated = rememberSaveable { mutableStateOf(false) }
val rotationAngle by animateFloatAsState(
targetValue = if (isRotated.value) 360F else 0F,
animationSpec = tween(durationMillis = 1500,easing = FastOutLinearInEasing)
)
Column {
Box(modifier = Modifier.background(Color.Red).size(100.dp).rotate(rotationAngle))
Button(
onClick = { isRotated.value = !isRotated.value },
modifier = Modifier.padding(10.dp)
) {
Text(text = "Rotate Box")
}
}
}
最佳答案
把 .rotate(rotationAngle)
作为 Box
的第一个修饰符.在背景和大小之前。
Column {
Box(modifier = Modifier.rotate(rotationAngle).background(Color.Red).size(100.dp))
Button(
onClick = { isRotated.value = !isRotated.value },
modifier = Modifier.padding(10.dp)
) {
Text(text = "Rotate Box")
}
}
查看this very detailed answer更好地理解为什么修饰符的顺序很重要。
关于android - 旋转动画在 Jetpack Compose 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69115490/