ViewPager+Fragment取消预加载(延迟加载)
来源:互联网 发布:大宋神通王 知乎 编辑:程序博客网 时间:2024/05/07 15:07
在项目中,都或多或少地使用的Tab布局,所以大都会用到ViewPager+Fragment,但是Fragment有个不好或者太好的地方。例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮你预先加载了第二个Fragment,当你加载第二个Fragment时,它会帮你加载第三个Fragment。这样虽然有时很好,但是用户只需看一个Fragment时,我们就做了一些多余工作加载了第二个Fragment。在这只需要取消Fragment的预加载即可,只有当用户切换到某个Fragment才加载..
首先,介绍两个方法void setUserVisibleHint(boolean isVisibleToUser)、boolean getUserVisibleHint(),它们分别用作设置/获得Fragment可见状态,我们可以重写Fragment在其中做判断,代码如下:
在我们的Fragment中,只需要继承这个类,然后重写其中的lazyLoad()方法,当Fragment对用户可见(即用户切换到此Fragment时)我们在lazyLoad()中加载所需数据,详细代码看下面,我写了个假的获取数据线程:
到这里我们只是写好了Fragment,在FragmentActivity中还需要对ViewPager设置一下,让它每次只加载一个Fragment,ViewPager.setOffscreenPageLimit(int limit),其中参数可以设为0或者1,参数小于1时,会默认用1来作为参数,未设置之前,ViewPager会默认加载两个Fragment。所以,我们只需要调用下它,设置下加载Fragment个数即可。
源码下载
0 0
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment setUserVisibleHint取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- ViewPager+Fragment取消预加载(延迟加载)
- radiobutton+viewpager+Fragment切换过程取消预加载(延迟加载)
- Fragment延迟加载技术(解决Viewpager预加载fragment)
- ViewPager+Fragment取消预加载
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
- java-冒泡排序和选择排序的分析
- Android混淆问题
- Java 序列化与反序列化
- Android Studio插件开发利器Exynap
- 终端下的聊天工具
- ViewPager+Fragment取消预加载(延迟加载)
- 几种常用加密算法比较
- 技术只是工具,你不能用它来代替生活
- libzmq wrong ELF class: ELFCLASS32
- Gradle 引入本地定制 jar 包,而不使用坐标下载 jar 包的方法
- android 创建多线程的几种方法
- 标准分幅地图-选择比例尺
- git命令
- C++ std::mem_fn使用示例