美文网首页
Android Fragment生命周期

Android Fragment生命周期

作者: 风吹白云飘 | 来源:发表于2017-09-06 17:50 被阅读20次

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

    1、Fragment搭配ViewPager

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

    搭配一:FragmentPagerAdapter

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

    生命周期 从上往下 从下往上

    搭配二:FragmentStatePagerAdapter使用。

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

    生命周期

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

    总结:

    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生命周期

          本文链接:https://www.haomeiwen.com/subject/ephvjxtx.html