android - Jetpack Compose 无限重复,重复 startDelay
问题描述
我想创建一个一次性的无限start delay
动画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 ...
InfiniteRepeatable
有没有办法为in设置一次性启动延迟Jetpack Compose
?
谢谢
解决方案
目前 ( 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
)
)
}
推荐阅读
- java - 为什么 Fortify 将其标记为未发布资源?
- r - 通过字符串匹配从其他数据帧中查找特定值
- apostrophe-cms - 使用 apos.i18n 翻译模块选项?
- ruby-on-rails - 如何为使用会话的 Rails 5 控制器编写测试?
- r - 将 alpha 值添加到 lattice xyplot 面板函数
- git - 如何将远程分支重置为某个提交?
- python - 熊猫有条件地使用另一个数据框创建一个新的数据框
- c# - 如何根据光线命中数使用 linerenderer 绘制多条线?
- css - Jekyll:在本地使用不同的 CSS 与 Github
- azure - 如果标签被折旧,发送通知时应该如何识别模板?