位置: 编程技术 - 正文

android:ListView的局部刷新

编辑:rootadmin

推荐整理分享android:ListView的局部刷新,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

1.简介

对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView。在这种模式下,我们会在getView中,根据不同的数据源,让控件显示不同的内容。这种模式是最常见的刷新模式,当我们来回滑动ListView的时候,调用adapter的getView方法,然后listview对adapter返回的View进行绘制。这种模式下,View的显示内容或状态都记录在adapter里面的数据源中,listview的更新频率不频繁,它随着数据源的变化而更新。

->ListView局部刷新问题的引入:

假设我们的ListView的Item中有一个进度条(ProgressBar)和一个按钮,当我们点击一下按钮,进度条就会从0到进行刷新,而且一般都需要在1s以内完成刷新过程,也就是说:在ListView的任一个Item中,触发了Button的事件之后,在1s以内,或者更短的时间,ProgressBar需要刷新次。显然,如果我们使用修改数据源,调用notifyDataSetChanged()进行刷新的机制明显是不恰当的,效率极低,而且不一定凑效。那么,我们自然想到当点击的时候,希望能够获取到点击后的View内部的ProgressBar控件的对象,然后直接调用progressBar的setProgress就可以了,本以为这样就大功告成了。忽然,你会发现,当progressBar正在更新的时候,此时,往下滑listview,突然发现下面的某个进度条也在更新。仔细一分析,还真有道理,因为ListView中的View是复用的,当你向下滑动listview的时候,你此时操作的progressBar对象,已经不是刚才点击的那个Item了,因为很多Item复用一个View。那么如何解决这个问题呢?

2.解决方案

记录点击的Item的position,然后在更新过程中,不断的判断,该position是不是介于可见的Item之间,如果是,则更新,否者,不更新。

android:ListView的局部刷新

其他相关代码:

ListAdapter

Activity

布局:

整个项目的源代码:

Android: Receiving Data from the Send Intent,将自己的app注册系统分享 当用户在系统相册,点击分享时,能通过我们自己的app,分享该图片。1.注册主要是在AndroidManifest.xml中,对activity注册Intent-filter,如:activityandroid:name=.u

androidannotations的background和UiThread配合使用参考 简介androidannotations在开发中的代码规范思考:(MVC思考)时间太紧,先贴代码:Activity的代码:packageedu.njupt.zhb.main;importorg.androidannotations.annotations.AfterVie

android:PopupWindow的使用场景和注意事项 1.PopupWindow的特点借用Google官方的说法:Apopupwindowthatcanbeusedtodisplayanarbitraryview.Thepopupwindowisafloatingcontainerthatappearsontopofthecurrentactivity.也就是说,popupwindow

标签: android:ListView的局部刷新

本文链接地址:https://www.jiuchutong.com/biancheng/371352.html 转载请保留说明!

上一篇:android:内存优化总结(android内存优化 简书)

下一篇:Android: Receiving Data from the Send Intent,将自己的app注册系统分享

  • 视同销售收入是纳税调整项目吗?
  • 核定征收三种方式
  • 出口佣金要交税吗
  • 增值税留抵税务处理办法
  • 事务所纳税
  • 个体工商户税务申报如何网上申报
  • 企业所得税可以抵扣吗
  • 长期待摊费用可以转入费用或者成本吗
  • 多出来的费用
  • 收到跨年的票据怎么做账
  • 施工企业确认收入的方法有哪两种
  • 法院拍卖房法院有什么义务和责任
  • 预付材料款会计分录
  • 无产权的建筑出售怎么办
  • 库存现金盘亏无法查明原因的分录
  • 付工程款现金怎么做凭证?
  • 进项票认证超了怎么处理
  • 什么是补提或者计提
  • 手动滑屏怎么操作
  • 移动手机网速测试
  • 净资产有哪些科目
  • 调增应纳税所得额季度申报表怎么填
  • 购买种子怎么做账
  • 预付账款退款怎么做会计分录
  • mdn php
  • 误解苹果
  • php设计思路
  • 其他暂收和应付账款区别
  • 转销坏账准备会影响账面余额吗
  • uniapp+uview
  • php提供了________和___________两种复合数据类型
  • 在建工程计提减值准备计入什么科目
  • 深红玫瑰鹦鹉多钱一个
  • 企业如何做账报税流程
  • timit数据集
  • 销售材料账务处理
  • js获取各种屏幕信息
  • 创建ftp软件
  • 结转销售成本的凭证需要附件吗
  • 航天金税税控盘运行环境
  • 个人申请给公司账户转账
  • 普票与专票的区别在哪?它各自的特点?
  • python 逻辑取反
  • 帝国CMS根据不同会员组显示不同内容的方法
  • 高速费会计分录怎么写
  • 预缴税款是什么意思
  • 债权投资和其他债权投资举例
  • 印花税减免优惠政策2019
  • sql效率优化
  • sql server2005使用方法
  • 物业管理企业会计核算的特点如何?
  • 哪些固定资产是负债类
  • 医院销售药品是否缴纳增值税
  • 国家高新技术企业补贴
  • 收到客户不要的定金怎么做账?
  • 应收票据明细表根据什么编制
  • 公账直接转给个人,对公司有什么影响吗
  • 请问,制造企业有哪些?
  • 新税法和新准则的关系
  • 在sql server数据库中
  • windowsxp搜索不到文件
  • windows8怎么调整亮度
  • windows缓存写入失败,数据怎么找回
  • mac声音怎么调大
  • linux如何使用命令创建文件夹
  • Linux 压缩某个文件夹的实现方法
  • 验证用户输入的密码JavaScript代码加文字
  • div与span区别及用法
  • unity 3a游戏
  • shell脚本一百例
  • 浏览器提示flash被屏蔽
  • jquery 报表
  • jQuery+formdata实现上传进度特效遇到的问题
  • jQuery实现的tab标签切换效果示例
  • 百望税控盘电子发票怎么打
  • 新疆国税局电子税务局
  • 江苏国税电子税务局网登录
  • 车船使用税税
  • 即使我单位是免税单位,签订合同时,也需要贴
  • 闵行区注册公司,闵行区税务筹划,哪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设