Fragment在ViewPager中布局文件丢失

当在ViewPager中嵌套Fragment时,可能会遇到布局文件丢失的问题,仅在初次创建时可见。原因是使用了Activity的FragmentManager而非Fragment的getChildFragmentManager()。在Fragment内部,应当使用getChildFragmentManager()来正确管理嵌套的Fragment,以确保布局的正常显示。示例代码展示了如何在Fragment_yi中使用getChildFragmentManager()创建适配器,避免布局丢失。
摘要由CSDN通过智能技术生成

现在主流的界面都是一个Activity中镶嵌三到四个Fragment,然后在这些Fragment中再镶嵌ViewPager,为了代码条理清晰,我们在ViewPager中存放的是Fragment而不是View。正常情况我们在ViewPager中嵌套View是没有问题的,但是再次嵌套Fragment就会出现布局文件丢失,只在第一次创建的时候可以看到,等切换了页面就变成空的了。

这是因为我们拿到的FragmentManager是Activity的

FragmentManager有两种: getSupportFragmentManager()和getChildFragmentManager()

这两者的区别从名字就能区分,前者是支撑后者是子类(孩子);

我们都知道Fragment是一个碎片,他必须有一个支撑者,而这个支撑者就是Activity了,但当我们在Fragment中再次嵌套Fragment的时候这个支撑者就管理不到我们了,子类的Manager才能真正的起到作用。所以当我们的类是继承Fragment的时候,我们给Adapter的参数要使用getChildFragmentManager(),而不是getSupportFragmentManager()

这样才能实现真正的管理。

下面是代码: 

public class Fragment_yi extends Fragment {

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值