fragment viewpager和tablayout相互嵌套内容不显示和组件不显示问题

1.在ViewPagerAdapter中 fragment是如何查找和关联的呢,:点进super(fragmentManager) 看instantiateItem方法看如图:


getItemId其实就是他的位置,makeFragmentName返回的是containerID和position组合的字符窜,方法如下:


而mFragmentManager不是getFragmentManger就是getSu.........,通过findFragmentBytag方法来查找 为null就通过getItem(position)方法得到并添加fragement ,name作为tag标记下次直接使用...并返回fragment作为键

显示方法如下:

@Override
public void finishUpdate(ViewGroup container) {
    if (mCurTransaction != null) {
        mCurTransaction.commitNowAllowingStateLoss();
        mCurTransaction = null;
    }
}

ps官文:Called when the a change in the shown pages has been completed. At this point you must ensure that all of the pages have actually been added or removed from the container as appropriate.

问题 1.viewGroupId是什么: 结果如下

是viewPager的id...值如此的相近:并且还是通过一个对象fragmentManager来保存是不是发生重复的概率很高:如果重复了都没有add,直接attach能有效果吗

解决方法如下:使用getchildFragmentManager传入适配器:

如果加入tablayout fragment不显示 可以加入setAdapter上一行语句或者重写:


ps:这样重写会出现短层,可以用空实现.

2.fragment+tablayout+viewpager+多个fragment内容不显示

在viewPageradapter传递数据,让当前的fragment的views填充数据如下:

先创建对象Fragment储存在list

for(int i=0;i<this.dataBeen.size();i++){
   newsPager.add(new NewsDetailPagerFragment());

}

执行顺序如下:

initView bindata是基类里面方法 分别在OncreateView onActivityCreated方法里调用...创建对象并不能执行initView bindata方法只有关联activity才执行

所以init()可以初始化数据,不能用view来bingdata数据,因为initView还没有执行

ps:内容不显示要么就是传错了FragmentManager或者执行顺序错误很笨.记录一下,不对地方请指教...




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值