1、說明
應用使用場景:
MainActivity中有5個Tab,分别對應5個Fragment,第1個和第2個fragment中都用到了ViewPager,其内部也包含多個fragment。
問題說明:
第1個Fragment中會顯示ViewPager + Fragment,第2個Fragment中也是類似的格局,但是奇怪的是第2個Fragment中ViewPager内部的Fragment不會顯示出來,全部空白。

2、解決步驟
- 首先檢視代碼有沒有問題,同第1個做對比,發現完全一樣,沒什麼問題。
- 既然代碼都差不多為什麼第2個會不顯示呢 ? 把第2個Fragment位置上放上第1個,也就是第1和第2位置是同一個Fragment,還是出現第1個顯示,而第2個不顯示的情況。 那就不是簡單的失誤層面的問題了,事态将進一步更新。
- 之後經過了解,發現是傳遞了錯誤的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個,也是空白,有些費解。
時間有限也不多去探查了,解決就好。
如果有了解該問題原因的同學,可以留言解答,感謝 !