天天看点

ViewPager加载Fragment空白解决1、说明2、解决步骤3、总结4、遗留问题

1、说明

应用使用场景:

MainActivity中有5个Tab,分别对应5个Fragment,第1个和第2个fragment中都用到了ViewPager,其内部也包含多个fragment。

问题说明:

第1个Fragment中会显示ViewPager + Fragment,第2个Fragment中也是类似的格局,但是奇怪的是第2个Fragment中ViewPager内部的Fragment不会显示出来,全部空白。

ViewPager加载Fragment空白解决1、说明2、解决步骤3、总结4、遗留问题

2、解决步骤

  1. 首先查看代码有没有问题,同第1个做对比,发现完全一样,没什么问题。
  2. 既然代码都差不多为什么第2个会不显示呢 ? 把第2个Fragment位置上放上第1个,也就是第1和第2位置是同一个Fragment,还是出现第1个显示,而第2个不显示的情况。 那就不是简单的失误层面的问题了,事态将进一步升级。
  3. 之后经过了解,发现是传递了错误的FragmentManager的问题:对于Activity中套Fragment应该用getFragmentManager或getSupportFragmentManager,而对于Fragment中套Fragment应该使用getChildFragmentManager。修改之后,运行,正常了,Good !

3、总结

getFragmentManager得到的是所在fragment父容器的碎片管理;getChildFragmentManager是fragment子容器的碎片管理。在实际使用中,对于Activity中套Fragment应该用getFragmentManager或getSupportFragmentManager,而对于Fragment中套Fragment应该使用getChildFragmentManager。

4、遗留问题

用对的FragmentManager是将该问题解决了,但是有个问题还是不太清楚到底是什么原因,2个主Fragment用同样的ViewPager + Fragment,为什么第1个可以展示无误,而第2个却一片空白;将第2个也换成展示同样的第1个,也是空白,有些费解。

时间有限也不多去探查了,解决就好。

如果有了解该问题原因的同学,可以留言解答,感谢 !