gpt4 book ai didi

android - Jetpack Compose infiniteRepeatable,重复startDelay

转载 作者:行者123 更新时间:2023-12-05 02:42:14 31 4
gpt4 key购买 nike

我想在 Jetpack Compose 中创建一个带有一次性开始延迟的无限动画。

我将 infiniteRepeatable()tween() 一起使用:

val value by rememberInfiniteTransition().animateFloat(
initialValue = 0f,
targetValue = 1f,
animationSpec = infiniteRepeatable(
animation = tween(
durationMillis = 700,
delayMillis = 200
)
)
)

在这种情况下,delayMillis 将重复:

*delay* 0..1, *delay* 0..1, *delay* 0..1 , *delay* 0..1  ...

但在 ValueAnimator 中,start delay 是一次性延迟:

val animator = ValueAnimator.ofFloat(0f, 1f).apply {
duration = 700
startDelay = 200
repeatCount = ValueAnimator.INFINITE
addListener { /* value */ }
}
animator.start()
*delay* 0..1, 0..1, 0..1, 0..1, 0..1, 0..1, 0..1  ...

有没有办法在 Jetpack Compose 中为 InfiniteRepeatable 设置一次性启动延迟?

谢谢

最佳答案

目前 (1.0.0-beta07) 不支持非重复延迟。

您可以将动画更改为:

val animatedFloat = remember { Animatable(0f) }

LaunchedEffect(animatedFloat) {
delay(200) // to avoid repeated delays
animatedFloat.animateTo(
targetValue = 1f, animationSpec = infiniteRepeatable(
animation = tween(700, easing = FastOutSlowInEasing),
repeatMode = RepeatMode.Reverse
)
)
}

关于android - Jetpack Compose infiniteRepeatable,重复startDelay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67750634/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com