位置: 编程技术 - 正文

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

  • 我国企业基本所得税的税率
  • 出口免税产品如何缴纳附加税
  • 固定资产入账怎么做账
  • 保险公司代征的税收
  • 质量扣款能按折扣计算吗
  • 利润率的百分比
  • 实验室报销发票
  • 没有抵扣的发票怎么入账
  • 土地增值税清算全流程实战案例
  • 劳务公司购买设备怎么做账
  • 商品销售赠送部分要交税吗
  • 购买商品有运费的分录
  • 费用计提后冲减怎么做账
  • 跨月作废发票怎么开
  • 非企业所得税税率
  • 公司和别人合伙违法吗
  • 工地上汽车加油怎么加
  • 三代税款手续费申请流程
  • 个人所得税薪金所得是实发工资还是应发工资
  • 对子公司进行增资
  • 物业管理专票税点
  • 案例讲解:当年度未及时取得有效凭证的相关成本、费用涉税处理
  • 的商品编码
  • 再保险的业务种类
  • 社会团体收取的会费是否缴纳增值税
  • 研发失败的项目可以加计扣除吗
  • 对外捐赠资产时应计入什么科目
  • 会计调账必须写说明吗
  • 去银行打回单需要带身份证吗
  • 申请商标发生的费用应该如何入账?
  • 公司收到银行存款利息收入会计分录
  • 毛利润,纯利润
  • 苹果微信朋友圈怎么发文字不带图片
  • 调制解调器报告了一个错误怎么弄
  • 什么票据行为是合法的
  • PHP:pg_field_type_oid()的用法_PostgreSQL函数
  • 高速公路电子发票抵扣进项税
  • php获取并显示用户的用户名
  • deepsort 跟踪
  • 建筑保温材料出台了哪些限制政策
  • 金蝶软件资产负债表公式设置
  • 货物入库会计分录怎么做
  • 员工预支款项及报销流程
  • 公司月报和季报
  • 我向银行借钱我是贷方还是借方
  • 厂房改造费用算固定资产吗
  • 房屋租赁合同印花税怎么交,一年一次吗
  • 个人所得税手续费返还增值税申报表怎么填
  • 企业所得税退税如何进行账务处理
  • 银行利息为什么用红字
  • 开红字发票如何做分录?
  • 用友软件如何反结账流程
  • 预付账款的
  • 什么叫短期投资
  • 支付给个人的劳务费需要发票吗
  • 会计核算采用什么形式
  • sql多级汇总
  • sql sever使用教程
  • deepin 2014系统下安装mysql数据库的方法步骤
  • Win10/Win8.1 PC版WhatsApp更新:新的emoji表情符号
  • 硬盘 linux
  • win8错误代码0xc0000001开不了机
  • win8快捷方式
  • 一岁的宝宝可以喝枸杞水吗
  • PQIBrowser.exe是什么进程 PQIBrowser进程查询
  • win7速度
  • win10raw预览
  • linux 清除垃圾
  • cocos2dx官方教程
  • opengl perspective
  • 通过node-mysql搭建Windows+Node.js+MySQL环境的教程
  • python作业题目
  • 安卓焦点
  • 举例详解民法典第502条
  • 最精简的年终工作总结
  • 重庆市国家税务局电子税务局官网
  • 已抵扣过进项税额的固定资产改变用途
  • 如何查询企业税务情况
  • 票种删除需要怎么弄
  • 网上报税失败怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设