Fragment懒加载

Posted on 2020-08-03 16:27  TongMeng  阅读(378)  评论(0编辑  收藏  举报

用过懒加载的都知道可以通过setUserVisibleHint 完成懒加载

但在Androidx中官方已经做出了优化,结合Lifecycle,做出更好的方案。

那就是只有可见的Fragment会走到onResume 

 

abstract class LazyFragment : Fragment() {

    private var isLoaded = false

    override fun onResume() {
        super.onResume()
        //增加了Fragment是否可见的判断
        if (!isLoaded && !isHidden) {
            lazyInit()
            Log.d(TAG, "lazyInit:!!!!!!!”)
            isLoaded = true
        }
    }

    override fun onDestroyView() {
        super.onDestroyView()
        isLoaded = false
    }

    abstract fun lazyInit()

}

  或者通过Lifecyle捕捉Lifecycle.Event.ON_RESUME 实现懒加载