我有一个正确显示当前进度的LinearProgressIndicator
。现在我希望进度是动画的,我认为这将是超级简单的animateFloatAsState
。好吧,不知道我没有grokking,但与下面的代码,进度不是动画,但立即显示在正确的地方。
@Composable
fun MyIndicator() {
val progressAnimDuration = 1500
val progressAnimation by animateFloatAsState(
targetValue = 0.35f
animationSpec = tween(durationMillis = progressAnimDuration, easing = FastOutSlowInEasing)
)
LinearProgressIndicator(
progress = progressAnimation,
...
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(20.dp)). // Rounded edges
)
}
字符串
因此,每当我在屏幕上显示该组件时,我都希望进度以动画方式显示到正确的进度状态,但实际上,进度并没有以动画方式显示,而是立即以正确的进度状态显示。
这里有什么问题吗?:)
6条答案
按热度按时间ffx8fchx1#
我也遇到过类似的问题,在我的例子中,我使用LaunchedEffect将进度从零更新到所需的值
字符串
pdkcd3nj2#
我在
animateFloatAsState
中发现了一个非常重要的参数visibilityThreshold
,你必须将其设置为0.001f
才能使其工作。t3psigkw3#
在我的情况下,它是工作-
字符串
yh2wf1be4#
您可以使用Animatable,但需要LaunchEffect来触发动画
字符串
bjp0bcyl5#
我是这样做的。我使用进度指示器来模拟加载效果,然后跳转到登录活动。
字符串
ymdaylpp6#
我通过在0处设置一个可变状态来解决它,然后在代码结束时将其设置为null以触发重组。
字符串
}