Android 多層fragment 巢狀時,viewPager不顯示的問題
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/zkll200/article/details/73692518
先看一段錯誤程式碼,這段程式碼寫在一個 Fragment 中:
private void initView(){
mViewPageAdpater = new ViewPageAdpater( getFragmentManager() );
mFragments.add( new BoonListFragment() );
mTitles.add( "title1" );
mFragments.add( new BoonListFragment() );
mTitles.add( "title2" );
mFragments.add( new BoonListFragment() );
mTitles.add( "title3" );
mViewPageAdpater.setFragments( mFragments, mTitles );
}
這段程式碼看上去一切正常,但是有時候就是好好的就是現實不出來,找來找去死活找不到原因。
一切東西都是普通的再不普通不過的 List 或者 Adapter,List這麼簡單的東西還能出問題?
那就是Adapter的問題了,Adapter裡面實現的不對嗎?也沒有問題啊,就那麼簡單的幾個方法。
最後終於發現,問題就在 new ViewPageAdpater( getFragmentManager() ); 這裡。
之前就知道 fragment中巢狀fragment 應該使用 getChildFragmentManager() ,每次用起來都是忘了。
正確的寫法:
private void initView(){
mViewPageAdpater = new ViewPageAdpater( getChildFragmentManager() );
mFragments.add( new BoonListFragment() );
mTitles.add( "title1" );
mFragments.add( new BoonListFragment() );
mTitles.add( "title2" );
mFragments.add( new BoonListFragment() );
mTitles.add( "title3" );
mViewPageAdpater.setFragments( mFragments, mTitles );
}
以後每當在 Fragment 中要用到 FragmentManager 的時候一定要記住,使用 getChildFragmentManager()。
--------------------- 本文來自 wei_think 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/zkll200/article/details/73692518?utm_source=copy