一、问题说明
Android 折叠屏展开或收起后页面会重建,并重新走 onCreate onStart onResume ...
重新创建后页面的状态也会丢失,比如页面中是一个 RecyclerView,我们滑动到了第 5 个卡片的位置,展开后又自动滑动到了第 1 个卡片的位置,这样对用户来说是不友好的。
二、问题解决
方案 1:设置展开或折叠后页面不要销毁重建
在 manifest 中给 activity 设置参数:
android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize"
这样在展开或折叠后就不会重新创建页面了。
方案 2:保存和恢复状态
在展开或折叠后会回调 Activity 的 onSaveInstance 和 onRestoreInstance 方案,可以在方法中进行状态的保存和恢复。