Fragment懒加载

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-02 15:06:43

解决viewpager加载多个fragment 设置预加载的方法失效问题 引入fragment懒加载

只有当页面显示的时候才被加载

主要使用到的方法:setUserVisibleHint()、userVisibleHint,界面显示到不显示,以及不显示到显示都会执行setUserVisibleHint方法


abstract class LazyFragment: Fragment(){
    private var isPrepare:Boolean =false
    private var isLoaded:Boolean =false

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        isPrepare=true
        lazyLoad()
    }

    override fun setUserVisibleHint(isVisibleToUser: Boolean) {
        super.setUserVisibleHint(isVisibleToUser)
        lazyLoad()
    }

    private fun lazyLoad() {
        if(userVisibleHint&&isPrepare&&!isLoaded){
            onLazyLoad()
            isLoaded=true
        }
    }

    abstract fun onLazyLoad()

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!