美文网首页
Fragment的懒加载与懒加载的使用

Fragment的懒加载与懒加载的使用

作者: Super_l1 | 来源:发表于2018-09-03 15:50 被阅读0次
    一.什么是Fragment的懒加载

    当ViewPager + adapter作为应用搭布局的时候,VIewPager会通过通过setOffscreenPageLimit来设置预加载的项目,不设置setOffscreenPageLimit,则默认为1(设置0无效,可以查看该方法源码知道),也就是当我们打开应用看到的时候fragmentOne时,实际上其他fragment(例如fragmentSecond)也进行了加载,只不过没有显示出来罢了,但是这样就造成了不必要的资源浪费(例如,fragmentSecond没有显示,但是却进行了大量的网络加载操作)。


    image.png

    基于上述情况,诞生了Fragment的懒加载模式:

    总结:只有页面即将显示的时候且只加载一次,滑动到其他页面的时候才加载其他页面数据
    当再滑动到已加载的页面不再进行数据的加载。(若想重新加载刷新重新加载数据)

    二.setUserVisibleHint的概念

    该方法用户告诉系统,这个Fragment的UI是否是可见的。所以我们只需要集成Fragment重写该方法,即可实现在Fragment可见的时候才进行网络加载操作,即Fragment的懒加载。

    三.封装

    BaseFragment:重写setUserVisibleHint() -- 在显示的时候调用方法 -- LoadData(用来网络加载数据) -- 通过变量来控制什么时机来进行网络加载。

      @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser);
            if (isVisibleToUser) {
                //联网请求数据
                loadData();
            }
        }
    

    这时候只要在loadData()中去做联网请求,那么就会极大的减少请求次数与请求时间,大大的提升了用户体验

    相关文章

      网友评论

          本文标题:Fragment的懒加载与懒加载的使用

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