Android Fragment生命周期

一直以来使用ViewPager时都感觉生命周期紊乱,今天闲下来,搞清楚到底咋回事

1、Fragment搭配ViewPager

这个是当前使用频率最高的组合。以下均使用ViewPager默认缓存页数1页。

搭配一:FragmentPagerAdapter

每一个创建的Fragment会缓存在内存中, 常用于引导页,tab页等固定页面数量较少的

Android Fragment生命周期_第1张图片
生命周期
Android Fragment生命周期_第2张图片
从上往下
Android Fragment生命周期_第3张图片
从下往上

搭配二:FragmentStatePagerAdapter使用。

缓存外的页面会被销毁,常用于动态添加页面,页面数量较多的


Android Fragment生命周期_第4张图片
生命周期

此种情况,不缓存的直接销毁,需要恢复的重新创建。

总结:

1、需要特别注意的是:第0页初次创建,是先调用setUserVisibleHint方法,后调用onCreateView,但是此页在onCreateView里getUserVisibleHint()为true;后续页面正常,先调用onCreateView,后调用setUserVisibleHint。此处不清楚,fragment懒加载时很容易出错。

2、在两头(第0页和最后一页),当前有效页数都是两个,中间的有效页数为3个,左右各一个。

3、使用FragmentPagerAdapter,应该用变量存下View,恢复时候可以判断非空就复用,避免重复inflate或者创建造成资源浪费。


2、Fragment独立使用

此时生命周期跟Activity一样,没什么特别的,很单纯的正常创建。值得一提的是这种情况下setUserVisibleHint方法是不会被调用的,此方法只有在PagerAdapter这样一组Fragment中才会被调用。

你可能感兴趣的:(Android Fragment生命周期)