Android 在选项卡式活动中使用RecyclerView进行屏幕旋转

Android 在选项卡式活动中使用RecyclerView进行屏幕旋转,android,android-recyclerview,screen-rotation,savestate,android-tabbed-activity,Android,Android Recyclerview,Screen Rotation,Savestate,Android Tabbed Activity,我正在使用选项卡式活动。在其中一个选项卡中,我有两个按钮和一个Recyclerview。在RecyclerView中,我有两个微调器和一个edittext。 第一个按钮用于在RecyclerView中添加一个新项目,第二个按钮用于在微调器和EditText中保存所选元素 我的问题是,当屏幕旋转时,Recyclerview被清空。我尝试使用Recyclerview的LayoutManager的OnSaveInstanceState()和OnRestoreInstanceState保存状态,但它仍然

我正在使用选项卡式活动。在其中一个选项卡中,我有两个按钮和一个Recyclerview。在RecyclerView中,我有两个微调器和一个edittext。 第一个按钮用于在RecyclerView中添加一个新项目,第二个按钮用于在微调器和EditText中保存所选元素

我的问题是,当屏幕旋转时,Recyclerview被清空。我尝试使用Recyclerview的LayoutManager的OnSaveInstanceState()和OnRestoreInstanceState保存状态,但它仍然被删除


我将感谢任何帮助

默认情况下,活动和片段具有onSaveInstanceState()方法,系统使用该方法提供捆绑包,您可以将基本数据和可打包对象写入捆绑包

只要你的数据简单,这是可以的。在你的情况下,它不是

框架可能会决定销毁或重新创建UI控制器,以响应完全超出您控制范围的某些用户操作或设备事件

例如屏幕旋转(方向改变)

ViewModel来拯救我们

ViewModel是Android体系结构组件的一部分,它具有生命周期意识


有关更多信息,请查看文档。

实现Viewmodel您能详细说明吗?因此,如果我理解正确,我应该在Viewmodel中的Recyclerview中保存捆绑包,例如在片段的OnPause中,然后将其从Viewmodel加载回onResume中的Recyclerview?