最近在做一个模块的优化,这个界面是通过复杂的逻辑实现的,点击按钮通过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就没有问题,这个也让我有点搞不懂.欢迎讨论!
相关文章:
-
2021-07-17
-
2021-07-18
-
2022-12-23
-
2022-12-23
-
2022-12-23
-
2021-08-08
-
2021-06-27
-
2022-12-23
猜你喜欢
-
2022-12-23
-
2022-12-23
-
2022-12-23
-
2021-07-27
-
2021-10-10
-
2022-12-23
相关资源
-
下载
2023-01-04
-
下载
2023-03-19
-
下载
2023-01-16