当前位置: 首页 > 知识库问答 >
问题:

OnScreenRotation与RecyclerView在选项卡activity中

蔺山
2023-03-14

我正在使用一个选项卡activity。在其中一个选项卡中,我有两个按钮和一个RecyclerView。在RecyclerView中,我有两个Spinner和一个EditText。第一个按钮的目的是在RecyclerView中添加一个新项,第二个按钮的目的是在Spinner和EditTexts中保存选定的元素。

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

如果有任何帮助我会很感激的!

共有1个答案

锺离锦
2023-03-14

默认情况下,活动和片段有一个onSaveInstanceState()方法,系统使用该方法提供一个Bundle,您可以向其中写入基元数据和可打包对象。

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

框架可能会决定破坏或重新创建一个UI控制器,以响应某些完全不在您控制范围内的用户操作或设备事件。

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

ViewModel来拯救我们。

ViewModel是Android体系结构组件的一部分,它是生命周期感知的。

欲了解更多信息,请查看此文档。

 类似资料:
  • 我有四个选项卡和四个片断(每个片断代表每个选项卡)。 每个片段都有一个垂直的回收器视图。由于所有片段视图看起来都很相似,我重新使用了相同的布局文件、相同的回收器视图项和相同的适配器。 问题是在第一个选项卡和第三个选项卡和第四个选项卡下只加载了一个项,而第二个选项卡成功地加载了整个数据。 我希望下面添加的图片能更好地理解这个问题。 这是我的适配器代码 我想指出几件事- 和其他答案提到的对所有支持库使

  • 两个tab <div class="ui-tab "> <ul class="ui-tab-nav ui-border-b "> <li class="current"><span>热门</span></li> <li><span>热门</span></li> </ul> <ul class="ui-tab-content" sty

  • 打开选项卡 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 最后打开选项卡的窗口 在最后打开的窗口打开一个新的选项卡。 新窗口 打开一个新的窗口。 允许重复打开相同的对象 如果你想允许一个对象可打开多个实例,可勾选这个选项。 选项卡列样式 永远显示选项卡栏 打开窗口时显示标签栏。

  • 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 主窗口 在主窗口中打开一个新的选项卡。 最后打开选项卡的窗口 在最后打开的窗口打开一个新的选项卡。如果没有任何已打开的窗口,会打开一个新的窗口。 新窗口 打开一个新的窗口。 启动画面 控制在启动 Navicat 时出现哪些选项卡: 选项 描述 仅打开对象选项卡 仅打开对象选项卡,没有其他选项卡。 从上次离开的画面继续 打开对象选项卡,并重新打

  • 启动画面 控制在启动 Navicat 时出现哪些选项卡: 选项 描述 仅打开对象选项卡 仅打开对象选项卡,没有其他选项卡。 从上次离开的画面继续 打开对象选项卡,并重新打开你上次离开 Navicat 时已打开的相同选项卡。 打开特定选项卡或一组选项卡 打开对象选项卡,并打开你在“设置选项卡”选择的选项卡。 打开选项卡 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 主窗口 在主窗口中打开一

  • 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 主窗口 在主窗口中打开一个新的选项卡。 最后打开选项卡的窗口 在最后打开的窗口打开一个新的选项卡。如果没有任何已打开的窗口,会打开一个新的窗口。 新窗口 打开一个新的窗口。 启动画面 控制在启动 Navicat 时出现哪些选项卡: 选项 描述 仅打开对象选项卡 仅打开对象选项卡,没有其他选项卡。 从上次离开的画面继续 打开对象选项卡,并重新打