问题背景:
一个Feagment里面有一个子Fragment,子Fragment里面有个孙Fragment
大致如下:P是一个最外层Fragment,F是P下面的其中一个页面,C 都是隶属于一个F里面的Fragment
P
F1 F2 F3
C1 C2 C3 C4
F1 是一个协调者布局,C1 只是ViewPager里面的一个Feagment,F1 和F2切换后 C1的 RecycleView就固定在了页面上,滑不了,接收不了事件。只要点击F1里面的Tab C1 的item就正常了。
分析思路:
1.始终怀疑是Fragment的生命周期导致的,我在C 和F里面都加了日志, 生命周期也正常回调。
2.去掉ViewPager,直接添加View。能正常显示。所以怀疑ViewPager的问题。
结果:
偶然看见在创建StageFragmentPagerAdapter对象时需要传递一个FragmentManger,但是传递的是getChildFragmentManger,于是改成ParentFragmentManger解决了这个问题。androidx没有这个函数了getParentFragmentManger。
先记录改问题,再去看代码。