ViewPager + Fragment实现懒加载
来源:互联网 发布:信息技术考试软件 编辑:程序博客网 时间:2024/05/16 12:12
ViewPager + Fragment实现懒加载
标签(空格分隔): Android课程
http://blog.csdn.net/tellh/article/details/50705178
http://www.jianshu.com/p/c5d29a0c3f4c
推荐框架
https://github.com/lianghanzhen/LazyViewPager
介绍
懒加载,指的是必要的时候才加载,否则不进行View的绘制和数据的加载。原因是Viewpager一次只会显示一个页面,那么初始进来时,只需加载第一张Fragment页卡,其他的不加载,当用户向右滑动切换再进行加载。
因为其他Fragment对于用户来说是不可见的,如果一开始就把全部Fragment一起加载,可能造成启动时卡顿的问题,更重要的是可能白白耗费用户的流量,因为用户可能并不需要其他Fragment的信息。
Fragment使用介绍
- viewPager.setOffscreenPageLimit()方法设置ViewPager允许有多少张pages存在于屏幕外(不包括正在显示的page),默认值是1。在范围之外的pages 的View会被销毁,即onDestroyView()会被执行。
- 刚被new出来的Fragment并没有开始它的生命周期,当它被添加到FragmentManager时生命周期才开始。
- setUserVisibleHint(),该方法在Fragment被用户可见时会调用且传入true值,不可见时则得到false值
- 延迟加载实现:当前界面(Fragment)可见,并且Fragment已经初始化完毕、网络数据未加载,则请求数据
代码实现
public abstract class BasePageFragment extends Fragment { //是否可见 protected boolean isVisible; //View是否初始化 protected boolean isViewInit; //数据是否初始化 protected boolean isDataInit; /** * 在Activity完成其onCreate()回调之后调用 * @param savedInstanceState */ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); isViewInit = true; prepareFetchData(); } /** * 当fragment被用户可见时,setUserVisibleHint()会调用且传入true值, * 当fragment不被用户可见时,setUserVisibleHint()则得到false值 * @param isVisibleToUser */ @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); this.isVisible = isVisibleToUser; prepareFetchData(); } public boolean prepareFetchData() { //当前界面(Fragment)可见,并且Fragment已经初始化完毕、网络数据未加载,则请求数据 if (isVisible && isViewInit && !isDataInit) { fetchData(); isDataInit = true; return true; } return false; } public abstract void fetchData();}
阅读全文
0 0
- ViewPager实现Fragment懒加载
- viewpager fragment 实现懒加载
- ViewPager + Fragment实现懒加载
- ViewPager+Fragment实现懒加载
- ViewPager+Fragment实现懒加载
- 实现ViewPager+Fragment的懒加载功能
- ViewPager+Fragment 懒加载的实现
- Android之Viewpager+Fragment实现懒加载
- Fragment与Viewpager实现懒加载
- TabLayout+ViewPager+Fragment懒加载实现
- TabLayout+ViewPager+Fragment实现懒加载
- Android之Viewpager+Fragment实现懒加载
- Fragment+ViewPager实现真正的懒加载
- Android之ViewPager+Fragment实现懒加载
- TabLayout+ViewPager+fragment实现懒加载
- fragment配合viewpager实现懒加载
- Fragment + viewpager 实现 懒加载 封装
- ViewPager+Fragment懒加载
- HTML5游戏开发之 -- lufylegend. js猜拳游戏(竖屏)
- Unity3D4.* NGUI制作动态字库
- python import sys sys.path.append()
- 分页概念
- 解决Fiddler "creation of the root certificate was not successful”的问题
- ViewPager + Fragment实现懒加载
- python基础学习-类(class)
- 网络请求Cookie
- 表示数值的字符串
- html中:frameset标签的使用
- 电脑常见问题之-右键无新建文件夹选项
- 第一节补充 配置PYTHON编码格式
- MySQL的列值自增长:auto_increment(一)
- while/do...while循环(笔记整理)