【BUG系列】Fragment中嵌套Fragment,不显示

如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉。 希望用最简单的大白话来帮助那些像我一样的人。如果有什么错误,请一定指出,以免误导大家、也误导我。 本文来自:www.jianshu.com/users/320f9… 感谢您的关注。

先看一段错误代码,这段代码写在一个 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()

转载于:https://juejin.im/post/5bff5c7a6fb9a049eb3ba386

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值