Android Fragment懒加载

懒加载思路

  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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值