bug描述:
- 外层viewpager装若干外层fragment,其中的某个外层fragment又装个内层viewpager,内存viewpager又装若干内存fragment。当外层的fragmnet来回切换时,导致内层的fragment数据丢失,报RecyclerView: No adapter attached; skipping layout异常。
解决办法:
- 创建viewpager适配器的时候,传入getChildFragmentManager()。
原因:
getFragmentManager()或者getSupportFragmentManager()) :Return the FragmentManager for interacting with fragments associated with this fragment’s activity,是所在fragment 父容器的碎片管理。
getChildFragmentManager():Return a private FragmentManager for placing and managing Fragments inside of this Fragment,是在fragment里面子容器的碎片管理。
本文介绍了一个关于在外层ViewPager中嵌套内层ViewPager并使用Fragment时遇到的数据丢失问题及解决方法。问题表现为当外层Fragment频繁切换时,内层Fragment的数据丢失,并引发RecyclerView异常。解决方案在于正确配置ViewPager的适配器,使用getChildFragmentManager()来管理内部Fragment的生命周期。

1754

被折叠的 条评论
为什么被折叠?



