我看了谷歌的这个文档。用MotionLayout管理运动和部件动画。我也多看了一些文档,如 Android Studio 4.0中的运动编辑器入门
问题是他们都说到当我们点击ViewButton时如何启动动画。我想模拟加载动画,但我想在显示视图时自动启动动画。
我意识到,我能够使用下面的代码来运行动画。然而,问题是。transitionToEnd()
运行一次动画。
所以,我的问题是:
如何运行动画并将其循环播放?(要让它永远存在,直到我停止它。)
有没有可能从startToEnd开始运行动画,然后endToStart,用这种方式循环播放动画?
private fun displayDamLoadingAnimation() {
val view = layoutInflater.inflate(R.layout.viewgroup_dam_loading, binding.flDamContainer)
view.motionContainer.transitionToEnd()
}
这可能是对用户的手机不好,但你可以做到这一点,一种方法是创建两个过渡。
<Transition
motion:constraintSetEnd="@+id/end"
motion:constraintSetStart="@+id/start"
motion:autoTransition="animateToEnd"
motion:duration="1000">
<Transition
motion:constraintSetEnd="@+id/end"
motion:constraintSetStart="@+id/start"
motion:autoTransition="animateToStart"
motion:duration="1000">
但如果你想让它循环,而不是来回走动
<Transition
motion:constraintSetEnd="@+id/end"
motion:constraintSetStart="@+id/start"
motion:autoTransition="animateToEnd"
motion:duration="1000">
<Transition
motion:constraintSetEnd="@+id/end"
motion:constraintSetStart="@+id/start"
motion:autoTransition="jumpToStart"
/>