从Fragment嵌套fragment到Viewpager嵌套Fragment再嵌套fragment

最近在做一个模块的优化,这个界面是通过复杂的逻辑实现的,点击按钮通过FragmentManager来切换模块.每个模块还都有待办和已办.所以就用fragment嵌套fragment,但是这样写代码量很多,所以就想用Tablayout+Viewpager+fragment来实现.

界面效果

遗憾的是,Tablayout添加依赖,是26.0.0版本的,而且主题需要使用AppCompThem,这个导致我的一个自定义Dialog显示效果不佳,所以暂时放弃了.使用按钮+Viewpager+fragment来实现.就遇到图中的问题.查了好多,甚至使用了fragment懒加载,主要是防止开始加载过多数据的,不过倒是不再出现数据混乱的效果了,但是这两个模块总有一个是空的.显然问题并没有解决.后来想是不是viewpager嵌套双层fragment导致的呢?查了一下,果然有了点眉目.原来是因为中间这层fragment获取manager是使用的是getFragmentManager(),而改成getChildFragmentManager()问题就解决了.那么我们来看一下他们有什么区别吧!

getFragmentManager()是所在fragment 父容器的碎片管理, getChildFragmentManager()是在fragment 里面子容器的碎片管理。 详细的还有getSupportFragmentManager()的区别,可以参考

这篇博客

百思不得其解的问题终于解决了,但是我一个同事就用的是getFragmentmanager就没有问题,这个也让我有点搞不懂.欢迎讨论!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值