Android Fragment懒加载

简介: 懒加载思路在Fragment布局创建的时候调用懒加载方法,创建之后将isViewPrepared设置为true。 /**标记Fragment视图是否已经初始化完毕*/ private boolean isViewPrepared;...

懒加载思路

  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();
目录
相关文章
|
XML Android开发 数据格式
Android -- Fragment动态注册
Android -- Fragment动态注册
81 0
|
14天前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
13 3
|
6月前
|
XML 存储 Android开发
Android技能树 — Fragment总体小结,2024年最新腾讯面试gm
Android技能树 — Fragment总体小结,2024年最新腾讯面试gm
|
6月前
|
XML Android开发 数据格式
Fragment的使用,零基础入门android逆向视频课程
Fragment的使用,零基础入门android逆向视频课程
|
6月前
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
1144 54
|
6月前
|
XML Java Android开发
Android Studio App开发之碎片Fragment的讲解及实战(附源码 包括静态和动态注册)
Android Studio App开发之碎片Fragment的讲解及实战(附源码 包括静态和动态注册)
345 1
|
6月前
|
Android开发 Kotlin
android开发,使用kotlin学习Fragment
android开发,使用kotlin学习Fragment
140 0
|
Android开发
Android ViewModel+LiveData实现Fragment间通信详解
Android ViewModel+LiveData实现Fragment间通信详解
181 0
|
Android开发
Android 中Activity和Fragment生命周期的具体变化详解
Android 中Activity和Fragment生命周期的具体变化详解
190 0
|
Android开发
Android 中Fragment和Activity之间的通信
Android 中Fragment和Activity之间的通信
63 0