用过懒加载的都知道可以通过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 实现懒加载