Fragment 数据懒加载及原理 | 您所在的位置:网站首页 › fragment懒加载原理 › Fragment 数据懒加载及原理 |
Blow, Blow Thou Winter Wind - John Everett Millais Fragment 的懒加载算是比较常见的功能了,但是之前一直没有仔细研究过,直到最近有这方面的需求,所以就写下这篇文章记录下自己的探索过程。 起因最近据后台同事反馈说,某些接口调用的频率有点高,而这块业务还没完全开放,照理说很少会用到,于是让我查查怎么回事。 我看了下日志,把网络请求日志过滤出来,发现的确有问题,每次打开首页后都有许多那块业务相关的网络请求。于是马上联想到可能是因为首页改版之后嵌套使用了 ViewPager,业务未完全开放的那个 fragment 里嵌套了一个 ViewPager,里面有多个 fragment,这样每次打开首页都会去加载该 page,然后是一连串的 fragment 初始化以及网络请求,所以为了解决该问题就不得不使用懒加载。 最终想要实现的效果是:1) 当 fragment 不可见的时候不加载数据;2) 当数据已经加载过之后,除非手动刷新否则不重新请求数据。 预加载与 setUserVisibleHint()首先,默认情况下,由于 ViewPager 会预加载左右两边相邻的至少 1 个 fragment,通过 setOffscreenPageLimit() 设置预加载 page 数为 0 并不会起作用,这点从 ViewPager 的源码中可以看到: private static final int DEFAULT_OFFSCREEN_PAGES = 1;// ...public void setOffscreenPageLimit(int limit) { if (limit |
CopyRight 2018-2019 实验室设备网 版权所有 |