Android 动态设置多运动布局动画
我有两个XML格式的运动布局。一个是父母,一个是孩子 当从XML设置开始动画的动画时,它可以工作。但是,当使用代码动态启动相同的运动布局时,视图不会显示,但日志中的动画显示它已完成。 可能是什么问题Android 动态设置多运动布局动画,android,animation,layout,android-motionlayout,Android,Animation,Layout,Android Motionlayout,我有两个XML格式的运动布局。一个是父母,一个是孩子 当从XML设置开始动画的动画时,它可以工作。但是,当使用代码动态启动相同的运动布局时,视图不会显示,但日志中的动画显示它已完成。 可能是什么问题 @Override public void onTransitionCompleted(MotionLayout motionLayout, int currentId) { switch (currentId) {
@Override
public void onTransitionCompleted(MotionLayout motionLayout, int currentId) {
switch (currentId) {
case R.id.endHomeLaunch:
motionLayout.setTransition(R.id.expanded, R.id.collapsed);
motionLayout.setProgress(0);
motionLayoutFloatButton.setTransition(R.id.startFloat,R.id.endFloat);
motionLayoutFloatButton.setTransitionDuration(1000);
motionLayoutFloatButton.transitionToEnd();
break;
由于我的父布局有滑动动画,我无法添加单击动画,因为这会在布局动画中添加错误。唯一的选择是创建两个单独的运动布局场景。这通常是由于运动布局无法在主线程上正确排队造成的。我刚刚解决了这样一个问题,解决方案似乎是协同程序,即在一个片段中,您可以这样做:
lifecycleScope.launchWhenStarted {
delay(50) //pause to allow other views to initialize
motionLayout.setTransition(R.id.myTransition)
motionLayout.transitionToEnd()
}