zoukankan      html  css  js  c++  java
  • 懒加载记录篇

    虽然文章多如牛毛,但是还是记录一下了

    效果图首先已经进入了首页,每次进入页面都会有个toast弹出提示,当点击第二个菜单,toast弹出,在次点击第一个菜单,因为已经加载过了,所以不弹出,在次点击第二个菜单,同理,在点击第三个菜单,第一次点击,弹出

    实现也比较简单

    首先继承自己的base类

    定义三个变量,是否加载好:isPrepared 是否显示:isVisible 是否加载完:isLoad

    然后在相应的位置改变变量的状态

        

    然后实现你的base中的方法,在init方法里添加toast,运行看看是否会多次加载

     

    运行后你或许会发现第一次默认进入页面的fragment没有被调用方法,这显然不是我们希望的,所以还得在加一段代码,让默认加载的fragment也应该被调用,并且只调用一次。只需要如下图调用上面定义的显示方法就可以了

    在次运行,发现和上面的效果图一样的效果了,这里懒加载就全部完成

    public abstract class LazyFragment extends BaseFragment {
    
        protected boolean isLoad = false;//是否加载完
    
        protected EmptyLayout emptyLayout;
    
        @Override
        public void onActivityCreated(@Nullable Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
            onVisible();
        }
    
        /**
         * 在这里实现Fragment数据的缓加载.
         */
        @Override
        public void setUserVisibleHint(boolean isVisibleToUser) {
            super.setUserVisibleHint(isVisibleToUser);
            if(getUserVisibleHint()) {
                isVisible = true;
                onVisible();
            } else {
                isVisible = false;
            }
        }
        /**可见时调用*/
        protected void onVisible(){
            if(!isPrepared || !isVisible || isLoad) {
                return;
            }
            init();
            isLoad = true;//加载完后更改状态,只限定加载一次
            Log.e("tag","onVisible");
        }
    
        @Override
        public void onDestroyView() {
            super.onDestroyView();
        }
    }
    View Code

     GitHub:https://github.com/1024477951/FragmentApp

     希望的可以收藏,^_^

  • 相关阅读:
    Google Map API使用详解(一)——Google Map开发背景知识
    IOS开发中发送Email的两种方法
    iOS简单的画线(UIImageVIew方式)
    NSData + Base64
    (转载)谈Flash的破解与加密(附flash破解工具)
    Google Map API使用详解(二)——Google Map API中文说明
    oracle sysdate 等 时间的相关应用
    vc mail 封装类
    switch if 比较
    http://tech.ddvip.com/200810/122362552676322.html state模式~
  • 原文地址:https://www.cnblogs.com/LiuZhen/p/8135682.html
Copyright © 2011-2022 走看看