Fragment新功能,setMaxLifecycle了解一下

基本介绍

setMaxLifecycle定义在FragmentTransaction中,和之前的add、attach、remove、detach、show、hide等方法是并列关系;

FragmentTransaction

参数解读:

  • fragment 即需要操作的Fragment对象,前提条件是这个fragment必须已经加到FragmentManager中;
  • state Lifecycle.State枚举类型,该参数的使用条件是至少是Lifecycle.State.CREATED,否则报IllegalArgumentException异常

Lifecycle.State一共有五个状态,最低要求是Lifecycle.State.CREATED,所以该方法可用的参数有CREATED、STARTED、RESUMED,State和生命周期方法有何区别,下面简单解释一下:

生命周期状态理解

在Fragment中,定义了五种State,这里的State并非上面说Lifecycle.State,但是逻辑基本上是一致的;

  • INITIALIZING 初始状态
  • CREATED 已创建状态
  • ACTIVITY_CREATED?完全创建,但是没有started
  • STARTED 创建并启动,可见不可操作
  • RESUMED 创建启动并可操作

image.png

add配合setMaxLifecycle(Lifecycle.State.CREATED)

image.png

add配合setMaxLifecycle(Lifecycle.State.RESUMED)

image.png
  • 对状态的Fragment进行操作操作

image.png

由于篇幅原因,就不一一介绍各种组合情况,只要弄清楚生命周期状态,不论是状态是升还是降,不论组合还是单用,你都可以驾驭;

由于篇幅原因,就不一一介绍各种组合情况,只要弄清楚生命周期状态,不论是状态是升还是降,不论组合还是单用,你都可以驾驭;

FragmentPagerAdapter变动

由于带来了生命周期设置,替换掉了老旧的方法,所以在中也进行了适配

FragmentPagerAdapter

最新的用一个来控制和二选一的局面; 在构造方法中指定;

image.png

从代码可以看出,用替代,用替代;

为什么要用为这里本质上用的是+和+组合;

最终的结果是不可见的Fragment只会走到生命周期方法,不会走方法;

懒加载新方案

综上,过去使用来控制Fragment懒加载,在最新版的FragmentPagerAdapter里有新思路,可以切换到模式,在Fragment里判断,更符合显示逻辑;

切换到模式,需要调用俩参数的构造方法:

来源:安卓开发架构

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年4月18日
下一篇 2019年4月18日

相关推荐