getParentFM 和 getChildFM 的问题

本文介绍了一个关于Fragment嵌套中RecyclerView失去滑动功能的问题,并详细分析了解决过程。问题出现在子Fragment嵌套使用ViewPager时,RecyclerView无法响应滑动事件。最终通过调整FragmentManager的引用方式解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题背景:

一个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。

先记录改问题,再去看代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值