Fragment懒加载

懒加载解决ViewPager中加载Fragment的问题

/**
 * 懒加载
 *
 * @author -lw
 * @date -2018/8/10
 * @note -
 * ---------------------------------------------------------------------------------------------------------------------
 * @modified -
 * @date -
 * @note -
 */
public abstract class LazyFragment extends Fragment {
    /** 是否视图已经初始化了 */
    boolean mIsCreated;
    /** 是否第一次加载 */
    boolean mIsFirstLoad = true;

    @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        if (!hidden) {
            lazyLoad(mIsFirstLoad);
            mIsFirstLoad = false;
        }
    }

    @Override
    public void onResume() {
        super.onResume();
        if (getUserVisibleHint() && !isHidden()) {
            lazyLoad(mIsFirstLoad);
            mIsFirstLoad = false;
        }
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mIsCreated = true;
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser && mIsCreated) {
            lazyLoad(mIsFirstLoad);
            mIsFirstLoad = false;
        }
    }

    /**
     * 是否是第一次加载
     *
     * @param isFirstLoad 是否是第一次加载
     */
    public abstract void lazyLoad(boolean isFirstLoad);
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容