Warm tip: This article is reproduced from serverfault.com, please click

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

(android - How to save/restore state of MotionLayout on activity rotation)

发布于 2020-11-27 20:42:51

重现步骤:运行带有MotionLayout的活动过渡到非初始状态旋转设备或启用/禁用黑暗模式

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

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

这是问题的记录: 在此处输入图片说明

Questioner
A. Patrik
Viewed
11
hoford 2020-11-28 08:17:37

MotionLayout不会自动保存其状态。布局的状态可能非常复杂。

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