博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Fragment懒加载
阅读量:6199 次
发布时间:2019-06-21

本文共 1063 字,大约阅读时间需要 3 分钟。

懒加载思路

  1. 在Fragment布局创建的时候调用懒加载方法,创建之后将isViewPrepared设置为true。
/**标记Fragment视图是否已经初始化完毕*/    private boolean isViewPrepared;    @Override    public void onViewCreated(View view, Bundle savedInstanceState) {        super.onViewCreated(view, savedInstanceState);        isViewPrepared = true;        lazyFetchDataIfPrepared();    }
  1. 在用户可见的方法中判断用否是否可见,如果可见则调用懒加载方法
@Override    public void setUserVisibleHint(boolean isVisibleToUser) {        super.setUserVisibleHint(isVisibleToUser);        if (isVisibleToUser){            lazyFetchDataIfPrepared();        }    }
  1. 懒加载方法中,判断用户是否可见,判断是否加载过数据,判断是否已经创建成功,如果创建成功,将hasFetchData设置为ture,然后调用lazyFetchData()方法来加载数据,该方法为抽象方法,交给子类实现。
private boolean isViewPrepared;    /**     * 进行懒加载     */    protected void lazyFetchDataIfPrepared(){        // 用户可见Fragment && 没有加载过数据 && 视图已经准备完毕        if (getUserVisibleHint() && !hasFetchData && isViewPrepared){            hasFetchData = true;            lazyFetchData();        }    }    /**     * 懒加载的方式获取数据,仅在满足Fragment可见和视图已经准备好的时候调用一次     */    protected abstract void lazyFetchData();

转载地址:http://lpnca.baihongyu.com/

你可能感兴趣的文章
Asp.Net MVC 分页、检索、排序整体实现
查看>>
python 输出当前行号
查看>>
12C -- 配置Application Continuity
查看>>
Flymeos插桩适配教程
查看>>
Elasticsearch教程(九) elasticsearch 查询数据 | 分页查询
查看>>
C#的delegate简单练习
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
YARN中内存的设置
查看>>
java 基础2
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
jsp九大内置对象
查看>>
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>
jsonp跨域访问+AES,RSA加密
查看>>
我的友情链接
查看>>
Juniper 基于路由的×××
查看>>
OSI七层模型03——数据封装
查看>>
UMail轻松搭建linux邮件服务器(一体盘安装)
查看>>
HDU - 2018 - 母牛的故事(dp)
查看>>