android - 当我重新启动动画时,如何重置 JetpackCompose AnimatedFloat 的初始值?
问题描述
我有一个AnimatedFloat
我创建的
val animatedFloat = animatedFloat(0f)
我开始使用动画
animatedFloat.animateTo(
targetValue = 1f,
anim = repeatable(
iterations = AnimationConstants.Infinite,
animation = tween(durationMillis = 2000, easing = LinearEasing),
)
)
所有这些工作,它开始在 2 秒内从 0f 移动到 1f。
当我使用以下停止它时,它会很好地停止。
animatedFloat.stop()
但是,当我使用相同的animateTo
功能重新启动它时,即
animatedFloat.animateTo(
targetValue = 1f,
anim = repeatable(
iterations = AnimationConstants.Infinite,
animation = tween(durationMillis = 2000, easing = LinearEasing),
)
)
它不再从 0f 开始。它从之前停止的值开始。不仅如此,从之前停止的位置到 targetValue 需要相同的时间,例如,如果它在 0.7f 处停止,那么从 到 开始需要 2 秒0.7f
,1.0f
这会减慢变化率。
initialValue
停止后如何重置?
解决方案
该stop
函数只是停止动画,它不会重置值。您可以使用animatedFloat.snapTo(0f)
立即将值设置为 0f 而无需任何动画。
https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimatedFloat#snapto
推荐阅读
- jquery - 为元素中的每个单词生成一个谷歌搜索链接
- unity3d - 统一应用程序在另一个系统中安装和运行时未创建 Log4net 日志文件
- opengl - openGL gl将一个形状翻译成8个不同的地方
- osgi - 无法在 apache karaf 4.2.1 中安装 Spring-DM (OSGI) 1.2.1 包?
- php - URL 掩码文件存储在子文件夹中的位置
- php - Magento 1.9如何将分页参数p更改为页面
- python - Django.db.utils.ConnectionDoesNotExist: The connection default doesn't exist
- ios - iOS move UIAlertAction higher to top of screen
- android - 我得到'android.content.res.Resources android.content.Context.getResources()'
- batch-file - How To Terminate a One-Liner CMD "DO" Command (REVISED)