vp滑动切换fragment的生命周期(懒加载思路提供)

前言:

本文以市面上常见的架构为例子,剖析fragment的声明周期

vp滑动切换fragment的生命周期(懒加载思路提供)

 

 

 

 

 

以下为正文->

1.打开页面

vp滑动切换fragment的生命周期(懒加载思路提供)

可以看到setUserVisibleHint方法首当其冲,优先于fragment的所有生命周期方法调用

随后是onAttach和onCreate两个生命周期的执行,

一直到onResume生命周期这里,

两个fragment的生命周期是交互执行的

 

 

2.这里切换到第二个fragment

vp滑动切换fragment的生命周期(懒加载思路提供)

ViewPager预加载特性,会预加载响铃的两个fragment,此时需要做懒加载操作,

一般在setUserVisibleHint方法里面做操作

详情请看fragment懒加载思路

 

3.然后是第三个fragment

vp滑动切换fragment的生命周期(懒加载思路提供)

非相邻fragment,视图会被销毁 

 

 4.第4个fragment

vp滑动切换fragment的生命周期(懒加载思路提供)

非相邻fragment,视图会被销毁 

 

5.回到第三个fragment

vp滑动切换fragment的生命周期(懒加载思路提供)

这里,之前被销毁的fragment(相邻fragment)重新创建了视图

 

 

6.回到第二个fragment

vp滑动切换fragment的生命周期(懒加载思路提供)

非相邻fragment被销毁视图

这里,之前被销毁的fragment(相邻fragment)重新创建了视图

 

7.回到第一个fragment

vp滑动切换fragment的生命周期(懒加载思路提供)

非相邻的fragment会被销毁视图

setUserVisibleHint为true,说明已经进入可见状态

 

8.锁屏&解锁的操作

vp滑动切换fragment的生命周期(懒加载思路提供) 这里会进行失去焦点,获取焦点

 

 9.后台&前台

vp滑动切换fragment的生命周期(懒加载思路提供)

可以看到,和锁屏走的生命周期一致

 

10.退出APP

vp滑动切换fragment的生命周期(懒加载思路提供)

这里依次执行了 onPause  onStop   onDestroyView  onDestroy    onDetach

 

 

viewpager让人又爱又恨,

最主要的是因为他的预加载,

有些业务场景需要我们对fragment的声明周期了解的足够清楚,

才能知道自己在哪个方法里面做懒加载操作,

最后,再重复一下->fragment懒加载思路