当前位置: 移动技术网 > 移动技术>移动开发>IOS > Fragment懒加载的实现

Fragment懒加载的实现

2020年07月17日  | 移动技术网移动技术  | 我要评论

一、要实现Fragment的懒加载需要满足三个条件:

1、布局是否初始化

2、视图是否可见

3、是否加载过数据

综上所述,只要满足这三个条件就可以执行加载操作。

二、如何实现

1、定义一个 isPrepared变量,在初始化视图的时候赋值为true;

2、定义一个isVisibleToUser变量,在页面可见状态赋值为true;

3、定义一个isDataInitiated变量,在页面加载数据时赋值为true;

三、直接上代码

public abstract class BaseFragment extends Fragment {

    /**
     * 是否初始化过布局
     */
    protected boolean isPrepared;
    /**
     * 当前界面是否可见
     */
    protected boolean isVisibleToUser;
    /**
     * 是否加载过数据
     */
    protected boolean isDataInitiated ;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(getContentId(), container, false);
       
        isPrepared = true;
        initView(view);
        initToolbar();
        return view;
    }


    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        this.isVisibleToUser = isVisibleToUser;
        if (isVisibleToUser) {
            if (isVisibleToUser && isPrepared && (!isDataInitiated)) {
                loadData();
                isDataInitiated = true;
            }
        }
    }

 
    /**
     * 懒加载
     */
    protected abstract void loadData();



    @Override
    public void onDestroyView() {
        super.onDestroyView();

        isPrepared = false;
    }



    protected abstract int getContentId();
    protected abstract void initView(View view);
    protected abstract void initToolbar();

}

本文地址:https://blog.csdn.net/weixin_42345592/article/details/107360994

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网