Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在活动旋转时保存/恢复MotionLayout的状态_Android_Android Animation_Android Motionlayout - Fatal编程技术网

Android 如何在活动旋转时保存/恢复MotionLayout的状态

Android 如何在活动旋转时保存/恢复MotionLayout的状态,android,android-animation,android-motionlayout,Android,Android Animation,Android Motionlayout,复制步骤: 运行包含MotionLayout的活动 过渡到非初始状态 旋转设备或启用/禁用暗模式 已观察:MotionLayout处于初始状态 预期:MotionLayout处于旋转前显示的状态 我是否应该将状态id放在savedInstanceState中,然后在onCreate中转换到该状态(持续时间为0,因此是瞬时的)?我认为这种方法可行,但感觉有点不对劲,有人知道解决这个问题的更好方法吗 下面是问题的记录: MotionLayout不会自动保存其状态。 布局的状态可能相当复杂 保存Mot

复制步骤: 运行包含MotionLayout的活动 过渡到非初始状态 旋转设备或启用/禁用暗模式

已观察:MotionLayout处于初始状态 预期:MotionLayout处于旋转前显示的状态

我是否应该将状态id放在
savedInstanceState
中,然后在
onCreate
中转换到该状态(持续时间为0,因此是瞬时的)?我认为这种方法可行,但感觉有点不对劲,有人知道解决这个问题的更好方法吗

下面是问题的记录:
MotionLayout不会自动保存其状态。 布局的状态可能相当复杂

保存MotionLayout的基本状态的最通用方法是保存getTransitionState()返回的包
然后在恢复时调用setTransitionState(Bundle b)

Ok,如果运动布局在其结束状态内,这就像一个符咒。但是如果我在运动布局应该处于开始状态时设置TransitionState,它会自动过渡到结束状态。您对如何禁用此自动转换行为有何建议?(在场景文件中未设置自动转换)请参阅此问题以了解进一步的说明和代码/gif: