如何将值设置为 remember val 而不是重组
how to set value to a remember val and not recompose
吹代码,我想在动画结束时将值设置为currentDegree,但是当我这样做时,它会重新组合。如何让它不重组?
@Composable
fun RotateImageCompose(width: Dp, height: Dp, resId: Int, targetDegree: Float) {
val currentDegree = remember { mutableStateOf(0f) }
var diff = currentDegree.value - targetDegree
.
.
.
val dregree by animateFloatAsState(targetValue = diff, animationSpec = tween(
easing = LinearEasing,
durationMillis = 180
), finishedListener = {
//this code cause the issue
currentDegree.value = it
})
Image(
painter = painterResource(id = resId),
contentDescription = null,
modifier = Modifier
.rotate(dregree)
.size(width, height)
)
}
只需使用:
val currentDegree = remember {0f}
这样你的价值是不可变的。
详细解释请看这里:
我把值保存在 compose 之外
吹代码,我想在动画结束时将值设置为currentDegree,但是当我这样做时,它会重新组合。如何让它不重组?
@Composable
fun RotateImageCompose(width: Dp, height: Dp, resId: Int, targetDegree: Float) {
val currentDegree = remember { mutableStateOf(0f) }
var diff = currentDegree.value - targetDegree
.
.
.
val dregree by animateFloatAsState(targetValue = diff, animationSpec = tween(
easing = LinearEasing,
durationMillis = 180
), finishedListener = {
//this code cause the issue
currentDegree.value = it
})
Image(
painter = painterResource(id = resId),
contentDescription = null,
modifier = Modifier
.rotate(dregree)
.size(width, height)
)
}
只需使用:
val currentDegree = remember {0f}
这样你的价值是不可变的。
详细解释请看这里:
我把值保存在 compose 之外