本文共 1063 字,大约阅读时间需要 3 分钟。
懒加载思路
/**标记Fragment视图是否已经初始化完毕*/ private boolean isViewPrepared; @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); isViewPrepared = true; lazyFetchDataIfPrepared(); }
@Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser){ lazyFetchDataIfPrepared(); } }
private boolean isViewPrepared; /** * 进行懒加载 */ protected void lazyFetchDataIfPrepared(){ // 用户可见Fragment && 没有加载过数据 && 视图已经准备完毕 if (getUserVisibleHint() && !hasFetchData && isViewPrepared){ hasFetchData = true; lazyFetchData(); } } /** * 懒加载的方式获取数据,仅在满足Fragment可见和视图已经准备好的时候调用一次 */ protected abstract void lazyFetchData();
转载地址:http://lpnca.baihongyu.com/