ViewPage+Fragment 懒加载+只加载一次 SwipeRefreshLayout自动刷新

来源:互联网 发布:淘宝动漫 编辑:程序博客网 时间:2024/05/21 02:21

之前发表了一次,不知道怎么了找不到。重新发一次


因为ViewPager+Fragment加载时启动的方法有些复杂,所以单纯的setUserVisibleHint并不能去执行。

在这段代码中必须重写onResume方法

注意:重点来了


在这段代码中lz使用了SwipeRefreshLayout去自动刷新,在此处SwipeRefreshLayout开启线程去赋值,赋值的目的主要是去调用它自带的动画,有兴趣的同学可以看一下源码。然后使用它的监听器去加载网络数据


监听器的初始化代码,在此处请将监听器设为全局变量。


当网络请求访问结束后,记得要使用线程去将这个动画关闭。否则小圆圈会一直转不停的

走到这里运行之后可以发现懒加载已成功,但是每次进入Fragment时都会去加载一次,对于重要性不是很高的功能来说,这是不合理的,那么怎么去解决?


很简单,在Activity中设置ViewPager的缓存数量为当前Fragment的数量。那么为什么这种方法就可以实现?原理如下:

当viewpager第一次加载时,我们采用的懒加载,所以他的缓存只会在第一次加载结束之后才会缓存。我们将缓存数量设置为Fragment的数量,可以保证Fragment永远都不会被销毁,有兴趣的同学可以看一下ViewPager+Fragment的生命周期

1 0
原创粉丝点击