如何 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)