20.3Fragment的懒加载
对于使用ViewPager+Fragment开发的界面,会遇到用户在点击第一个TAB页,看第一个Fragment的界面时,系统会自动执行第二个TAB页Fragment的代码,自动从服务器或本机获取第二个Fragment界面展示的数据;点击并查看第二个TAB页的时候,系统会自动执行第三个TAB页的代码的情况。
在许多时候,用户可能只想看第一个TAB页的数据,不想看第二个TAB页的数据,或只看第二个TAB页的数据,不想看第三个TAB页的数据;系统如果这样自动执行代码,从服务器获取数据,会浪费用户的数据流量,而且如果自动执行的代码出错了,用户可能还会莫名的看到出错提示。
这就需要改变代码的运行机制,只在用户看到某个Fragment界面的时候,才加载数据,也就是懒加载。
在ViewPager类中,有以下变量是定义预加载的页数,默认为1:
privatestatic final int DEFAULT_OFFSCREEN_PAGES = 1;
privateint mOffscreenPageLimit = DEFAULT_OFFSCREEN_PAGES;
以下函数可以设置预加载的页数,从代码可以看出,预加载的最小页数是1,不能设置为0: