我们先看一下这种情况是什么样的:
我们可以看到第二个Fragment里面的ViewPager显示的内容为空白,为什么呢?关键代码在这里:
viewPager.setAdapter(new OtherFragmentAdapter(getFragmentManager(),list));
因为我们嵌套了Fragment,所以这里就不能用getFragmentManager了,需要使用getChildFragmentManager,代码修改如下:
viewPager.setAdapter(new OtherFragmentAdapter(getChildFragmentManager(),list));
再来看效果
getFragmentManager到的是activity对所包含fragment的Manager,而如果是fragment嵌套fragment,那么就需要利用getChildFragmentManager()了。
在使用fragment时 遇到
getFragmentManager()和getChildFragmentManager()的使用,
getFragmentManager()是所在fragment 父容器的碎片管理,
getChildFragmentManager()是在fragment 里面子容器的碎片管理。