如何 save/restore MotionLayout 在 activity 旋转时的状态
How to save/restore state of MotionLayout on activity rotation
重现步骤:
运行 里面有 MotionLayout 的 activity
过渡到非初始状态
旋转设备或enable/disable暗模式
观察到:MotionLayout 处于初始状态
预期:MotionLayout 处于旋转前显示的状态
我是否应该将状态的 id 放在 savedInstanceState
中,然后在 onCreate
中转换到该状态(持续时间为 0,因此它是瞬时的)?我认为这种方法可行但感觉有点hacky,有没有人知道更好的解决这个问题的方法?
这是问题的记录:
MotionLayout 不会自动保存其状态。
布局的状态可能相当复杂。
保存 MotionLayout 基本统计信息的最通用方法是保存 getTransitionState() 返回的包
然后在 restore
上调用 setTransitionState(Bundle b)
重现步骤: 运行 里面有 MotionLayout 的 activity 过渡到非初始状态 旋转设备或enable/disable暗模式
观察到:MotionLayout 处于初始状态 预期:MotionLayout 处于旋转前显示的状态
我是否应该将状态的 id 放在 savedInstanceState
中,然后在 onCreate
中转换到该状态(持续时间为 0,因此它是瞬时的)?我认为这种方法可行但感觉有点hacky,有没有人知道更好的解决这个问题的方法?
这是问题的记录:
MotionLayout 不会自动保存其状态。 布局的状态可能相当复杂。
保存 MotionLayout 基本统计信息的最通用方法是保存 getTransitionState() 返回的包 然后在 restore
上调用 setTransitionState(Bundle b)