位置: 编程技术 - 正文

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注册系统分享

  • 离职员工奖金发放规定
  • 业务招待费的税金可以抵扣吗
  • 资源税的计税依据为应税产品的开采量
  • 企业所得税税负率多少合适
  • 四大税种是什么
  • 小规模纳税人普票交税吗
  • 年终奖分摊到每个月
  • 使用党费要向哪里倾斜
  • 金税盘无法连接jk开票
  • 折旧方法改变属于会计政策变更还是估计变更
  • 多付的货款怎么追回
  • 企业自主研发的成功案例
  • 小微企业减免的税金怎么做账
  • 递延所得税资产怎么计算
  • 已抵扣未入账的红字发票
  • 非居民企业提供劳务企业所得税
  • 社保基数如何计算单位和个人承担多少
  • 降低win10版本
  • 往来账会计怎么做
  • 结转本月各项损益
  • 出纳有哪些清点项目
  • 管理费用怎么结转分录
  • PHP:mb_convert_encoding()的用法_mbstring函数
  • 以前年度应付账款转收入
  • win10分辨率调整
  • 错账改正方法
  • 以前年度应当取得而未取得的发票
  • 会计核算的实训目的
  • 所得税年度报表资产总额
  • 百家论坛是正规期刊吗
  • web攻防之业务安全实战指南
  • thinkphp框架介绍
  • 小狐狸吧
  • 博客管理系统开题报告
  • php 接口
  • dmsetup remove_all 会不会清掉数据
  • 收取的标书收入如何入账
  • 举报民间借贷利息收入所得税
  • 厂区道路不应该使用哪种材料
  • 第6章 分支语句和逻辑运算符
  • php __get()
  • 生育津贴减去应发工资还是实发工资
  • 小规模季度等于几个月
  • 自然人代开经营所得汇算清缴怎么做
  • 残疾人保障金需要联系专管员吗
  • 结转本年利润要算期初余额吗
  • 建筑业增值税税负率
  • 销售退回 所得税
  • 报关单金额大于出口发票金额
  • 补缴上年度所得税的会计分录
  • 支付设备款怎么做账
  • 员工成本价购买公司商品 税屋
  • 加油充值卡有优惠吗
  • 借款合同的印花税计税依据
  • 凭证扣除 28号
  • 担保属于债权吗
  • 酒店营业额成本比例
  • 红字信息表开错了对方已开发票怎么处理
  • 银行回单借贷标志贷表示什么
  • 讲课费需要提供发票吗
  • 开机无法进入桌面,无法调用资源管理器
  • xp系统打印任务一闪就没有了
  • centos7 eth
  • ubuntu12.04.5安装教程
  • linux命令pwd是什么意思
  • 快捷键f1怎么用不了
  • 宽带连接显示重拨
  • linux批量替换文件夹名称
  • win8右下角
  • windowsxp示例图片
  • linux登录提示
  • win8.1应用商店不能装软件,提示此项应用不在提供
  • opengl编程实例
  • jquery选择器的优势有哪些
  • python t()
  • javascript题
  • Jar mismatch! Fix your dependencies
  • unitymol
  • 地铁发票如何取得
  • 四川税务专管员查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设