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

你可能感兴趣的:(android)