位置: 编程技术 - 正文

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

  • 承兑贴现几个点是月息还是年息
  • 小规模免税的税额怎么处理
  • 其他应收款包括应收利息吗
  • 固定资产一次扣除政策执行到什么时候?
  • 企业人员信息已存在无需新增
  • 人员工资薪金所得税计算税款
  • 房地产企业营改增前都交那些税
  • 科技型中小企业条件
  • 支付退货款现金流怎么做
  • 怎么扣除未支付的钱
  • 核定征收所得税税率
  • 城建税及教育附加税怎么算
  • 实收资本未实缴到位,是否缴纳印花税
  • 实收资本印花税怎么申报税目
  • 合并利润表抵消事项包括
  • 本月计错多发的工资可以不交个税
  • 停车场企业所得税税率
  • 普通发票开票步骤
  • 营改增后利息收入交什么税
  • 国家税务总局2011年第25号公告
  • 公司发的现金
  • 增加实收资本印花税税目
  • 建筑企业异地预缴工会经费
  • 股权转让的标的
  • 微信收款需要纳税多少
  • 收购发票使用范围税收规定
  • 房地产开发企业所得税管理办法
  • 公司控股的公司下子公司有哪些
  • 外资公司办事处职能
  • 协会收取会员单位的会务费怎么做账
  • 如何整理流水账目
  • 福利费需要扣税吗
  • 收回应收账款会影响应收账款的账面价值吗
  • 阻止电脑系统更新设置在哪
  • 收到某公司的钱的会计分录
  • 股东以非货币出资办理什么手续
  • windows 10音响没有声音
  • 非营利组织免税资格公示
  • 征税小规模纳税申报
  • 耕地开垦费应计入哪个会计科目
  • servlet工作原理和生命周期
  • 车间的办公费计入
  • 社保缴费工资和实发工资不一样
  • 固定资产清理应交增值税怎么算
  • node_sass
  • 异地项目需要预缴增值税吗
  • 进项税额转出会计分录
  • 企业商品库存周期是多久
  • 收到工会经费返还属于现金流量表哪
  • 赔偿的费用
  • mysql 增加用户
  • pos机收款不开票怎么做账
  • 租赁中承租人的会计分录
  • 无形资产的成本包括增值税吗
  • 分公司挣的钱归谁所有
  • 减免税需要纳税申报吗
  • 员工外面有自己的公司
  • 现金日记账每月都要写期初余额吗
  • 公司找的第三方代缴社保
  • 建筑业预交税金会计分录
  • 国家退税计入什么科目
  • 库存现金的主要活动
  • 进出口货物报关单
  • 赠送的产品价格为0怎么做账
  • 合同资产减值准备对应科目
  • 修筑公路的流程视频
  • 银行手续费必须开发票的规定
  • mysql中mysqldump
  • subss
  • win10 win+l
  • linux中安装软件可使用哪些方式
  • win8系统修复在哪里
  • 折中查找偶数怎么办
  • python爬虫工作内容
  • shell脚本实现Linux运维监控
  • python爬虫从入门到精通
  • js中构造函数怎么写
  • 税控盘监控信息写盘失败时钟校准
  • 国税局地税局合并的必要性有哪些内容
  • 增值税专用发票和普通发票的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设