现在主流的界面都是一个Activity中镶嵌三到四个Fragment,然后在这些Fragment中再镶嵌ViewPager,为了代码条理清晰,我们在ViewPager中存放的是Fragment而不是View。正常情况我们在ViewPager中嵌套View是没有问题的,但是再次嵌套Fragment就会出现布局文件丢失,只在第一次创建的时候可以看到,等切换了页面就变成空的了。
这是因为我们拿到的FragmentManager是Activity的
FragmentManager有两种: getSupportFragmentManager()和getChildFragmentManager()
这两者的区别从名字就能区分,前者是支撑后者是子类(孩子);
我们都知道Fragment是一个碎片,他必须有一个支撑者,而这个支撑者就是Activity了,但当我们在Fragment中再次嵌套Fragment的时候这个支撑者就管理不到我们了,子类的Manager才能真正的起到作用。所以当我们的类是继承Fragment的时候,我们给Adapter的参数要使用getChildFragmentManager(),而不是getSupportFragmentManager()
这样才能实现真正的管理。
下面是代码:
public class Fragment_yi extends Fragment {