Fragment+Viewpager的预加载与懒加载

来源:互联网 发布:杭州java工资 编辑:程序博客网 时间:2024/06/05 23:56

Fragment+Viewpager的预加载与懒加载

预加载介绍

ViewPager+Fragment的搭配在日常开发中很常见,可用于切换展示不同类别的页面,我们日常所见的咨询、购物、金融、社交等类型的APP都有机会用到这种控件组合。

Viewpager控件有个预加载机制,即在默认的情况下当前页面左右两个页面会被预先加载,即使设置setofflimit(0)也无效果,这样不但会浪费初始化资源,降低性能,还会出现一些不可预期的问题。

为了禁止预加载,应用而生了懒加载。

懒加载介绍

所谓的懒加载,就是等到该页面的UI展示给用户时,再加载该页面的数据(从网络、数据库等)。
而不是依靠ViewPager预加载机制提前加载两三个,甚至更多页面的数据.这样可以提高所属Activity的初始化速度,也可以为用户节省流量.而这种懒加载的方式也已经/正在被诸多APP所采用.
但是通过ViewPager方法setOffscreenPageLimit(int limit)的源码可以发现,ViewPager通过一定的逻辑判断来确保至少会预加载左右两侧相邻的1个页面,也就是说无法通过简单的配置做到懒加载的效果.

懒加载解决:http://www.jianshu.com/p/7a47907f49c2