- 5
- 0
- 约3.42千字
- 约 7页
- 2018-08-29 发布于福建
- 举报
基于延迟加载技术ListView控件优化
基于延迟加载技术ListView控件优化
摘要摘要:Android目前已是世界上占有率最大的手机平台,引发了一场移动互联网的开发热潮,其前景也被越来越多的人看好。针对使用安卓中ListView控件时存在的内存问题进行探讨,并实现了通过数据的延迟加载来优化ListView控件。
关键词关键词:ListView控件; 延迟加载技术;控件优化
DOIDOI:10.11907/rjdk.151950
中图分类号:TP319
文献标识码:A文章编号文章
编号2015)011009302
基金项目基金项目:湖南省教育厅一般项目(14C1015);邵阳学院研究生科研创新项目(CX2014SY021)
作者简介作者简介:段顼(1989-),男,湖南邵阳人,邵阳学院机械与能源工程系硕士研究生,研究方向为移动通信应用开发及智能信息处理。
0引言
ListView是Android应用程序开发中最常用的控件之一,该控件使用垂直列表的方式显示多个选项。利用Android开发软件操作简单,尤其利用其可视化控件可大大提高编程效率。然而,ListView控件所占内存的大小将直接影响到ListView的运行速度。对于用户而言,一般通过开启无线WiFi或数据流量来加载数据,WiFi网络的好坏将极大地影响数据加载速度。当加载大容量数据(如图片)时,如果网络不是很好,加载则比较耗时;若开启数据流量,则将耗损大量流量。此外,由于移动终端手机显示屏的局限性,当显示批量数据时[1],若由用户自主决定是否加载更多数据,则较为合适且更人性化,也可以大大节省内存和流量。
1ListView控件与Adapter
ListView是一种可以显示一系列项目并能滚动显示的View,同时对于所有的子View都是相互独立的个体。通常由一个xml指定,并显示一条数据集合[2]。在每行中,既可以是简单的文本,也可以是复杂的结构。一般情况下,需要保证ListView渲染快速、滚动流畅。
列表的显示主要由ListVeiw、适配器和数据3个元素构成,其中,ListVeiw用来展示列表中的View;适配器用来把数据映射到ListView上;数据将被映射的字符串、图片或基本组件映射至ListView上。对于批量数据的显示,Adapter和ListView必须进行绑定,可以把Adapter看作ListView 的数据源,ListView接收Adapter传递的数据并显示出来。Adapter又可称为适配器,通过适配器可以实现用户界面View和数据的绑定。Adapter主要负责创建用于表示每一个条目的子View,同时提供对底层数据的访问。Android提供了多种类型的Adapter,并且能够支持用户自定义适配器,从而实现ListView控件中子View元素的布局显示[4]。
2延迟加载优化原理及实现
延迟加载即在不得不更新时才更新和加载。用户在滚动屏幕时,有些滚动是中间过程,这些行将一闪而过,实际上这些行没有必要在服务器上更新和下载,在这种情况下可以利用延迟加载技术监测ListView的滚动事件。滚动主要分为3个状态:①“Idle”:空闲,也即停止滚动;②“Touch scroll”:用户手指按下开始滚动;③“Fling”:滑动状态。
通过Adapter动态地获取数据,在Adapter中设定“TouchScroll”、“Fling”中的mBusy=true,“Idel”中的mBusy=false。通过WarnAdapter中的mBusy来判断用户行为,当mBusy=true:用户处在滑动屏幕或屏幕还处于滚动状态也即中间过程时,设定其显示内容为“Loding......”,在该情况下ListView并没有从服务器获取、加载和更新数据;当mBusy=false:用户停止滑动也即“Idel”时,才会加载和更新数据。
2.1通过onScrollStateChanged实现3种滚动状态监听
利用onScrollStateChanged实现用户停止滚动屏幕、按下滚动屏幕、滚动屏幕3种状态的监听,具体实现方法如下:
屏幕处于空闲状态,如图1所示,可以通过设定onScrollStateChanged状态SCROLL_STATE_IDLE,也即空闲状态,同时设定适配器中的WarnAdapter.mBusy=false,此时屏幕状态为mStatues.setText(Idle)。
屏幕处于滑动状态,如图2所示,可以通过设定onScrollStateChanged状态CROLL_STATE_FLING,也即滚动状态,同时设定适配器中的WarnAdapter.mBusy=true,此时屏幕状态
您可能关注的文档
- 基于幼儿快乐成长玩美绘画游戏探索.doc
- 基于幼儿教育视角研究我国学前教育存在困境及改革策略.doc
- 基于幼儿早期阅读习惯培养探索.doc
- 基于幼儿气质特点个案研究.doc
- 基于幼儿游戏中常见问题介入策略.doc
- 基于幼儿生活科学活动实施策略研究.doc
- 基于幼儿科学关键经验探究性主题活动构建与实施.doc
- 基于幼儿艺术素养培养音乐教学实践研究.doc
- 基于幼虫取食行为桉蝙蛾防治方法探析.doc
- 基于广东省骨干骨科医师培训 探索基层骨干医师培养模式.doc
- 2026年甘肃省庆阳社区工作者考试题库及答案.docx
- 2026年安徽省马鞍山市重点学校小升初数学考试试题解析及答案.docx
- 2026年安徽省马鞍山市重点学校小升初数学考试试题题库(答案+解析).docx
- 2026年及未来5年切刀承卷机项目市场数据调查、监测研究报告.docx
- 2026年及未来5年组合式电除尘器项目市场数据调查、监测研究报告.docx
- 2026年及未来5年手持式综合烟气分析仪项目市场数据调查、监测研究报告.docx
- 2026年及未来5年流体连接件项目市场数据调查、监测研究报告.docx
- 2026年河南省驻马店市某中学高一英语分班考试真题含答案.docx
- 2026年及未来5年冰豆项目市场数据调查、监测研究报告.docx
- 2026年及未来5年养鱼缸外置式过滤器项目市场数据调查、监测研究报告.docx
最近下载
- YJK建筑结构的鉴定和加固设计.ppt
- 深度解析(2026)GBT 528-2009硫化橡胶或热塑性橡胶 拉伸应力应变性能的测定.pptx VIP
- 深度解析(2026)《GBT 42278-2022硫化橡胶 热拉伸应力的测定》.pptx VIP
- 深度解析(2026)《GBT 41941-2022硫化橡胶 疲劳裂纹扩展速率的测定》.pptx VIP
- 计算机系统结构张晨曦王志英(高等教育)课后答案.doc VIP
- 黄金投资技巧与心态.doc VIP
- 深度解析(2026)《GBT 6398-2017金属材料 疲劳试验 疲劳裂纹扩展方法》(2026年)深度解析.pptx VIP
- 贵州省独山县城关镇地区锑矿找矿前景分析.doc VIP
- “双碳”目标下山西省煤炭行业公正转型路径研究--就业专题(二期).docx
- 必知的黄金白银投资技巧.doc VIP
原创力文档

文档评论(0)