【发布时间】:2020-10-05 22:38:42
【问题描述】:
我有一个 MotionScene,它有 4 个 ConstraintSet,代表 4 个屏幕状态(加载状态),它们之间有 3 个转换。 当我的应用程序状态从例如更改时加载到处理中,我想运行 Transition 1 (set1 -> set2),当状态再次改变时,我想运行 Transition 2 (set2 -> set3)。而且我找不到办法。
接下来我尝试了:
使用
设置当前过渡 motion_layout.setTransition(R.id.set1, R.id.set2)
motion_layout.transitionToState(R.id.set2)
只设置过渡
motion_layout.setTransition(R.id.set1)
转换到某个状态:
motion_layout.transitionToState(R.id.set1)
但上述所有方法都将我的所有集合一起运行,即使我使用 app:autoTransition="none" 。
我尝试将所有内容放在一个 Transition 中并设置 app:progress = 0 on ,然后使用进度控制动画的状态:
motion_layout.setProgress(0.25f, 1.0f)
它只是将所有动画运行到最后,或者我尝试过
motion_layout.progress = 0.25f
没有动画,它只显示 0.25 的动画进度,没有任何动作。
如何控制动画的流动?如何运行特定的集合?使用进度会更好吗?如何解决?
附: 我用
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta7'
【问题讨论】:
-
嘿,我更新了我的答案——我第一次没有注意到这个问题;)
标签: android animation android-constraintlayout androidx android-motionlayout