Fragment里嵌套Fragment,父fragment有缓存布局加载不出来的问题

来源:互联网 发布:vue.js结合什么ui框架 编辑:程序博客网 时间:2024/05/01 01:23

  这两天在工作遇到一个问题,Fragment里嵌套Fragment,这是很多App里都很常用的模式,在其中遇到了Fragment里嵌套Fragment,父fragment布局不加载的问题,这个问题有点奇怪,第一次能正常加载布局,但是第二次又不能加载出布局,并且父Fragment里的内容为子fragment的内容,但是清除下缓存,又能正常加载出布局,甚是奇怪,百思不得其解,使用getChildFragmentManager()也不能解决,在网上也没检索出相关的解决方案,至此有点陷入僵局,最终,我也没想出解决的方法,只能换一种解决方法来寻求需求的实现。

  我的解决方法是这样的,你们可以借鉴一下,我就不使用fragment里嵌套fragment的方法来实现该显示模式,而是用fragment里嵌套自定义Pager来实现,将子fragment的内容提取成一个个的pager,用pager来管理所需要显示的内容,具体的做法如下(就不贴代码了):

  1.自定义一个pager类,里面管理了一个rootView表示的是原来子fragment需要加载的根布局(里面只有一个FrameLayout),再管理了一个pagerView表示需要展示的内容。

  2.在pagerView里完成需要展示数据的相关逻辑。

  3.在相应位置将pagerView添加到rootView中

  至此就完成了一个fragment嵌套fragment的另类实现,后面的各种页面也统一由pager进行管理,可以适当的将各个pager抽象成一个BasePager,后续开发中,凡是遇到页面展示都继承BasePager,提高了代码的复用,简化了代码。

  一直耿耿在怀的是不明白为什么产生fragment里嵌套fragment,父fragment里布局有缓存就加载不出来的问题,如果有知道的大牛,以及怎么解决,望告知。

  

0 0
原创粉丝点击