家人们呀!谁能懂啊,我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();