Fragment 中懒加载的应用:
Fragment中的setUserVisibleHint()会在onCreateView()之前执行当ViewPager中fragment 改变可见状态、从可见到不可见、切换到 时候,都会调用此方法,使用getUserVisibleHint可以返回fragment是否可见状态
LazyLoad() 加载数据必须满足三个条件:
-
getUserVisibleHint()会返回是否可见状态,这是fragment实现懒加载的关键,只有fragment
可见才会调用onLazyLoad() 加载数据。 -
isPrepared参数在系统调用onActivityCreated时设置为true,这时onCreateView方法已调用完毕(一般我们在这方法里执行findviewbyid等方法),确保
onLazyLoad()方法不会报空指针异常。 -
isLazyLoaded确保ViewPager来回切换时BaseFragment的initData方法不会被重复调用,onLazyLoad在该Fragment的整个生命周期只调用一次,第一次调用onLazyLoad()方法后马上执行
isLazyLoaded = true。