ViewPager+Fragment,Fragment中嵌套Fragment,嵌套的Fragment数据都加载到了第一个嵌套的Fragment

作者在项目临近上线时遇到一个困扰一周的问题,数据加载错误。经过多日的调试、日志分析和生命周期研究,问题依然未解。最终发现是使用getParentFragmentManager()而不是getChildFragmentManager()导致的父Fragment中子Fragment加载异常。替换这行代码后,问题成功解决。
摘要由CSDN通过智能技术生成

家人们呀!谁能懂啊,我TM找了一周的问题,反复尝试了一周都没解决的问题,竟然是因为一句代码的问题。气死我啦!!!!

情况是这样的,我们项目临近上线,同事拿着手机过来说,杜,你看这个页面,加载的数据不对,都是其他的页面的,后面几个页面都没有数据,你看看赶紧处理下。我一听瞬间头大,我C,啊!啊!啊!又出现了问题。

哎,赶紧看看吧,项目都要上线了!

我T喵,看了一下午,尝试了一下午,都没有找到原因。我要疯了,只能如实给项目负责人说了这个情况。他说:那这个模块就先配置一个页面吧。然后,就配置了一个页面,项目上线了。

项目是上线了,可是问题我还得解决呀,然后我就各种搜,搜了之后各种尝试,父Fragment生命周期,子Fragment生命周期,各种打印日志,各种断点,Debug,一天,两天,三天。。。。。。

日子一天一天的过去了,我的问题还是一点进展都没有,还没有头绪,各种方法都尝试了,疯了。。。。。。

惆怅了好久,

再看看代码吧,也没有其他的办法。

父Fragment中加载子Fragment的代码

FragmentManager fragmentManager = getParentFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
SpecialContextFragment specialContextFragment = SpecialContextFragment.newInstance(mModulesBeans, mStrBgImgUrl, mTextColor);
fragmentTransaction.add(R.id.special_frame, specialContextFragment);
fragmentTransaction.commit();

嗯,getParentFragmentManager(); 这是什么鬼,我记得还有个getChildFragmentManager() ,父Fragment中的子Fragment加载异常,莫不是我用的这个Fragment Manager出了问题。

抱着好奇心,我就将getParentFragmentManager(); 替换成getChildFragmentManager() ,运行,测试,问题解决了。

啊,家人们呀!难为我一周的问题就这么一行代码解决了。呜!呜!呜!

下边把代码贴出来:

  FragmentManager fragmentManager = getChildFragmentManager();
  FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  SpecialContextFragment specialContextFragment = SpecialContextFragment.newInstance(mModulesBeans, mStrBgImgUrl, mTextColor);
  fragmentTransaction.add(R.id.special_frame, specialContextFragment);
  fragmentTransaction.commit();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值