如何在viewpager的片段中保存recyclerview的状态?

康斯坦丁诺斯

我已经设置了一个 ViewPager 和 TabLayout,它有 3 个片段,其中一个片段有一个 RecyclerView。我想在片段销毁后恢复 RecyclerView 的内容。RecyclerView 是从我使用 AsyncTaskLoader 在 onViewCreated 中调用的 API 填充的。我希望它在旋转时保留数据而不重新使用 API。

这就是我尝试这样做的方式:

    @Override
public void onSaveInstanceState(@NonNull Bundle outState) {
    super.onSaveInstanceState(outState);
    mListState = mLayoutManager.onSaveInstanceState();
    outState.putParcelable(LIST_KEY,mListState);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    mLayoutManager = new LinearLayoutManager(mContext);
    mRecyclerView = view.findViewById(R.id.recyclerView_earthquake);
    mAdapter = new EarthquakeAdapter(getContext(), mList);
    mRecyclerView.setAdapter(mAdapter);
    if (savedInstanceState != null){
        mListState = savedInstanceState.getParcelable(LIST_KEY);
        mLayoutManager.onRestoreInstanceState(mListState);
    } else {
        Bundle queryBundle = new Bundle();
        format = DateFormat.getDateInstance(DateFormat.SHORT);
        String startDate = format.format(new Date(System.currentTimeMillis()));
        String endDate = format.format(new Date(System.currentTimeMillis() + 86400000L));
        queryBundle.putString("startDate", startDate);
        queryBundle.putString("endDate", endDate);
        LoaderManager.getInstance(this).restartLoader(0, queryBundle, this);
    }
    mRecyclerView.setLayoutManager(mLayoutManager);
}

这不起作用,当我旋转设备时,RecyclerView 为空。如果这很重要,我也在使用 FragmentStatePagerAdapter。

阿纳托利·斯皮琴科

只需在适配器中设置项目

override fun onSaveInstanceState(outState: Bundle) {
    outState.putParcelableArrayList(ITEMS_KEY, mItems)
}

在 onViewCreated 方法中

if (savedInstanceState?.containsKey(ITEMS_KEY) == true) {
       mAdapter.setItems(savedInstanceState.getParcelableArrayList<YourModel>(ITEMS_KEY))
} else {
       // load data
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在RecyclerView中保留ViewPager状态?

来自分类Dev

在 viewpager 中保存和恢复片段状态

来自分类Dev

如何在android片段中保存多个充气布局视图状态?

来自分类Dev

如何在android中保存switchcompat的状态?

来自分类Dev

如何在viewpager片段内的recyclerview中添加swipelayout?

来自分类Dev

如何在Python中保存音频流的片段

来自分类Dev

如何在TextMate中保存(备份)我的片段?

来自分类Dev

在Android中保存和还原片段状态

来自分类Dev

在Android中保存和还原片段状态

来自分类Dev

如何在sencha touch中保存无线电场的状态

来自分类Dev

如何在Android中保存(切换)按钮状态?

来自分类Dev

如何在Accord.net中保存“学习状态”?

来自分类Dev

如何在sqlite中保存android复选框状态?

来自分类Dev

如何在播放框架验证中保存广播btn状态

来自分类Dev

如何在列表视图中保存视图状态

来自分类Dev

如何在sencha touch中保存无线电场的状态

来自分类Dev

如何在Android中保存活动状态

来自分类Dev

如何在GNOME Boxes中保存虚拟机的状态?

来自分类Dev

如何在Activiti框架中保存和恢复进程状态

来自分类Dev

如何在 Redux 的状态中保存用户条目?

来自分类Dev

如何在对象实例中保存当前状态?

来自分类Dev

如何在共享首选项中保存按钮状态?

来自分类Dev

如何在Android中保存RecyclerView的滚动位置?

来自分类Dev

如何在recyclerview中保存复选框位置?

来自分类Dev

如何在recyclerview中保存复选框位置?

来自分类Dev

如何在替换时保存到片段状态

来自分类Dev

使用视图作为页面而不是片段来保存viewpager的状态

来自分类Dev

启动另一个片段后如何在Fragment中保存数据?

来自分类Dev

如何在片段着色器中保存值以供以后使用?

Related 相关文章

  1. 1

    如何在RecyclerView中保留ViewPager状态?

  2. 2

    在 viewpager 中保存和恢复片段状态

  3. 3

    如何在android片段中保存多个充气布局视图状态?

  4. 4

    如何在android中保存switchcompat的状态?

  5. 5

    如何在viewpager片段内的recyclerview中添加swipelayout?

  6. 6

    如何在Python中保存音频流的片段

  7. 7

    如何在TextMate中保存(备份)我的片段?

  8. 8

    在Android中保存和还原片段状态

  9. 9

    在Android中保存和还原片段状态

  10. 10

    如何在sencha touch中保存无线电场的状态

  11. 11

    如何在Android中保存(切换)按钮状态?

  12. 12

    如何在Accord.net中保存“学习状态”?

  13. 13

    如何在sqlite中保存android复选框状态?

  14. 14

    如何在播放框架验证中保存广播btn状态

  15. 15

    如何在列表视图中保存视图状态

  16. 16

    如何在sencha touch中保存无线电场的状态

  17. 17

    如何在Android中保存活动状态

  18. 18

    如何在GNOME Boxes中保存虚拟机的状态?

  19. 19

    如何在Activiti框架中保存和恢复进程状态

  20. 20

    如何在 Redux 的状态中保存用户条目?

  21. 21

    如何在对象实例中保存当前状态?

  22. 22

    如何在共享首选项中保存按钮状态?

  23. 23

    如何在Android中保存RecyclerView的滚动位置?

  24. 24

    如何在recyclerview中保存复选框位置?

  25. 25

    如何在recyclerview中保存复选框位置?

  26. 26

    如何在替换时保存到片段状态

  27. 27

    使用视图作为页面而不是片段来保存viewpager的状态

  28. 28

    启动另一个片段后如何在Fragment中保存数据?

  29. 29

    如何在片段着色器中保存值以供以后使用?

热门标签

归档