位置: 编程技术 - 正文

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

  • 劳务公司的税率一般是多少
  • 预收账款的税费怎么处理
  • 工衣工帽清洗费税率是多少
  • 上月少计提的个税本月怎么调整
  • 计提附加税会计凭证怎么做会计分录
  • 多余的进项税该怎么处理
  • 汽车销售和租赁哪个大
  • 未达到起征点的增值税会计处理
  • 当前时间该属期不可申报
  • 本年利润借方专栏有什么
  • 营业外收入怎么结转到本年利润
  • 季度预缴能不能弥补亏损
  • 非居民企业所得税税率10%
  • 票据贴现利息怎么开发票
  • 跨期发票可以申报抵扣进项税额吗?
  • 老板想提取销售公积金
  • 借差旅费退回现金怎么办
  • 小规模纳税人隔月可以作废发票吗
  • 个税公司承担怎么做账计入其他应收款怎么平账
  • 国家税务总局2016年公告
  • 增值税进项销项怎么算
  • 餐饮研发费用确认条件
  • 小型微利企业的
  • 开票的增值税与附加税
  • 投资类公司增资
  • 劳务报酬计入综合所得吗
  • 开发票原则是收款之后才能开具吗
  • 个人独资企业公账转私账
  • 基建项目和工程项目区别
  • 带息应收票据的核算
  • 什么时候使用多进程
  • 用php做一个表格
  • 红字发票信息表填好后再怎么操作
  • 怎么用云服务
  • 会计准则长期待摊费用开始计提摊销的时间
  • 个人账户存储额是缴费总和
  • 人力资源外包可以去吗
  • 理财收益如何计税
  • 前端get请求传数组
  • 深度学习之快速实现数据集增强的方法
  • 进口货物财务处理
  • 购买车辆的进项税怎么抵扣
  • 暂估入库少了
  • 客户不要的专票我们可以不作废吗
  • 专用发票能当月抵扣吗
  • 开了红字发票申请还要做进项税转出吗
  • 帝国主义
  • 织梦文章标题显示不全
  • 证券公司收益凭证管理办法
  • 个人缴纳社保部分怎么算
  • mysql跨库join
  • sql server 附加
  • win7怎么配置
  • 纳税申报人的对象是哪些
  • 退回企业所得税的账务处理
  • 酒店客房收入会计分录
  • 商誉的会计核算怎么核算
  • 股东所有者权益负数
  • 城投公司政府购买服务
  • 工程材料增值税抵扣比例
  • 主营业务收入和营业外收入的区别
  • win2008 r2 hosts文件修改方法
  • windows使用svn命令
  • centos怎么样
  • win7系统怎么创建虚拟网络
  • 强制升级win11后果
  • win10 自带
  • win7c盘突然满了怎么回事
  • 解决VMware下64位linux系统不支持全虚拟化的办法
  • kb3150220安装失败
  • Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
  • debug命令及其基本操作
  • css onclick
  • 解析函数
  • 批处理文件是将需要连续使用的可多次重复使用的
  • json基本语法
  • jquery实现div左右移动
  • js window.screen
  • 济南税务局电话是多少
  • 河北个体户个人缴税标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设