viewpager+fragment懒加载经验

viewpager设置缓存数量:

mViewPager.setOffscreenPageLimit(1);

后,来回切换只会调用onCreateView() -> onDestroyView()生命函数,因为ViewPager里对Fragment的回收和创建时,如果Fragment已经创建过了,那么只会调用onCreateView() -> onDestroyView()生命函数。

实现懒加载,并且限制加载缓存为1,需要:

1 ,在oncreateview里防止反复创建view,但是不为空直接返回,网络加载的数据下来操作界面会报空指针,可能是ondestroyview里面做了操作,找到的view的id给清空了(用黄油刀的情况下),所以就不用做view是否为空的判断了。

2,在ondestroyview里可以控制是否加载完数据的标志,第二次进来会继续走oncreateview,onactivitycreated,的顺序,不控制isLoadDataCompleted的话,因为类没有销毁,只是在走周期函数,所以isLoadDataCompleted还是为true,最终结果就是显示有view的界面。数据并没有去加载。

总结:1,实现懒加载,就不用去限制viewpager的加载缓存了。没有意义。处理起来还烦。

2,实现懒加载又实现限制,就必须注意oncreateview,和ondestroyview的操作,这样会造成不是相邻的项目切换的话会有白板,因为相当于重新创建view,然后加载数据显示。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容