• 懒加载记录篇


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

    效果图首先已经进入了首页,每次进入页面都会有个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

     希望的可以收藏,^_^

  • 相关阅读:
    Network (poj1144)
    C. Hongcow Builds A Nation
    ZYB loves Xor I(hud5269)
    D. Chloe and pleasant prizes
    Game(hdu5218)
    约瑟夫环的递推方法
    Misaki's Kiss again(hdu5175)
    Exploration(hdu5222)
    B. Arpa's weak amphitheater and Mehrdad's valuable Hoses
    C. Arpa's loud Owf and Mehrdad's evil plan
  • 原文地址:https://www.cnblogs.com/LiuZhen/p/8135682.html
Copyright © 2020-2023  润新知