我想使用MotionLayout实现Spring动画。另外,我想给予刚度和阻尼作为自定义值。顺便说一句,我看到了一些示例,其中您需要使用OnSwipe标记来在MotionLayout中使用Spring动画。我想要的是动画工作没有用户的触摸。有什么办法吗?
lyr7nygr1#
我们不太清楚你所说的Spring动画是什么意思。如果你想让进程以Spring的形式移动,那么通常你会这样做:
progress.animateTo( 1f, animationSpec = tween(800) ) MotionLayout( ... progress = progress.value )
这可以更改为
val progress by animateFloatAsState( targetValue = 1f, animationSpec = spring( dampingRatio = Spring.DampingRatioHighBouncy, stiffness = Spring.StiffnessMedium ) ) MotionLayout( ... progress = progress.value )
通过创建自定义插值曲线,可以在MotionLayout内部实现类似Spring的效果。
1条答案
按热度按时间lyr7nygr1#
我们不太清楚你所说的Spring动画是什么意思。如果你想让进程以Spring的形式移动,那么通常你会这样做:
这可以更改为
通过创建自定义插值曲线,可以在MotionLayout内部实现类似Spring的效果。