基本介绍
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 创建启动并可操作
add配合setMaxLifecycle(Lifecycle.State.CREATED)
add配合setMaxLifecycle(Lifecycle.State.RESUMED)
- 对状态的Fragment进行操作操作
由于篇幅原因,就不一一介绍各种组合情况,只要弄清楚生命周期状态,不论是状态是升还是降,不论组合还是单用,你都可以驾驭;
由于篇幅原因,就不一一介绍各种组合情况,只要弄清楚生命周期状态,不论是状态是升还是降,不论组合还是单用,你都可以驾驭;
FragmentPagerAdapter变动
由于带来了生命周期设置,替换掉了老旧的方法,所以在中也进行了适配
FragmentPagerAdapter
最新的用一个来控制和二选一的局面; 在构造方法中指定;

从代码可以看出,用替代,用替代;
为什么要用为这里本质上用的是+和+组合;
最终的结果是不可见的Fragment只会走到生命周期方法,不会走方法;
懒加载新方案
综上,过去使用来控制Fragment懒加载,在最新版的FragmentPagerAdapter里有新思路,可以切换到模式,在Fragment里判断,更符合显示逻辑;
切换到模式,需要调用俩参数的构造方法:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!