【发布时间】:2018-04-13 03:40:54
【问题描述】:
我正在制作一个架构如下的视图:
片段的视图寻呼机具有 FragmentStatePagerAdapter(适配器 1),FragmentStatePagerAdapter(适配器 1)在单击 Fragment 时会返回 Fragment,它会打开另一个 Fragment,该 Fragment 再次具有 ViewPager 和FragmentStatePagerAdapter(adapter 2) 附加到它,再次返回 Fragment。
我的问题是,当我单击 Fragment 并按返回按钮返回时,Fragment 为空白,当我在适配器 1 上使用 getChildFragmentManager 时,应用程序崩溃,找不到 @987654332 的视图@。
编辑:
通过调试,我发现FragmentStatePagerAdapter 不会返回之前返回的片段,这就是我得到空白页的原因
在片段中:
viewPagerDetail.setAdapter(new ProductDetailViewPagerAdapter(getFragmentManager()));
tabLayoutDetail.setupWithViewPager(viewPagerDetail);
(如果我在这里使用 getChiildFragmentManager 会导致应用程序崩溃)
ProductDetailViewPagerAdapter 内部:
@Override
public Fragment getItem(int position) {
return new ViewPagerImageFragment();
}
在 ViewPagerImageFragment 内部:有一个 imageview 当我单击图像视图时,它会打开一个片段,该片段具有带有适配器的 viewpager,当我按回具有 ProductDetailViewPagerAdapter 的片段时,它也会返回一个片段空白
【问题讨论】:
-
你需要为后面堆叠的
Fragment实现onResume函数,这样当Fragment恢复时,它会恢复到之前的状态。 -
你能回答吗
-
那么我需要检查从您的父级
Fragment启动的Fragment以及您在哪里使用导致崩溃的childFragmentManager。 -
childFragmentManager 在第一个适配器,见编辑
-
请分享上述代码段。
标签: android android-fragments android-viewpager fragmentmanager