Fragment 数据懒加载及原理 您所在的位置:网站首页 fragment懒加载原理 Fragment 数据懒加载及原理

Fragment 数据懒加载及原理

2023-03-12 05:48| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有