Android 如何在活动旋转时保存/恢复MotionLayout的状态
复制步骤: 运行包含MotionLayout的活动 过渡到非初始状态 旋转设备或启用/禁用暗模式 已观察:MotionLayout处于初始状态 预期:MotionLayout处于旋转前显示的状态 我是否应该将状态id放在Android 如何在活动旋转时保存/恢复MotionLayout的状态,android,android-animation,android-motionlayout,Android,Android Animation,Android Motionlayout,复制步骤: 运行包含MotionLayout的活动 过渡到非初始状态 旋转设备或启用/禁用暗模式 已观察:MotionLayout处于初始状态 预期:MotionLayout处于旋转前显示的状态 我是否应该将状态id放在savedInstanceState中,然后在onCreate中转换到该状态(持续时间为0,因此是瞬时的)?我认为这种方法可行,但感觉有点不对劲,有人知道解决这个问题的更好方法吗 下面是问题的记录: MotionLayout不会自动保存其状态。 布局的状态可能相当复杂 保存Mot
savedInstanceState
中,然后在onCreate
中转换到该状态(持续时间为0,因此是瞬时的)?我认为这种方法可行,但感觉有点不对劲,有人知道解决这个问题的更好方法吗
下面是问题的记录:
MotionLayout不会自动保存其状态。 布局的状态可能相当复杂 保存MotionLayout的基本状态的最通用方法是保存getTransitionState()返回的包
然后在恢复时调用setTransitionState(Bundle b)Ok,如果运动布局在其结束状态内,这就像一个符咒。但是如果我在运动布局应该处于开始状态时设置TransitionState,它会自动过渡到结束状态。您对如何禁用此自动转换行为有何建议?(在场景文件中未设置自动转换)请参阅此问题以了解进一步的说明和代码/gif: