位置: 编程技术 - 正文

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

  • 海关完税价格是什么
  • 塑料制品开票税率
  • 收入及增值税会计准则
  • 个人出售普通住宅应当缴纳哪些税
  • 小规模纳税人广联达怎么取费怎么取
  • 房地产企业怎么认定
  • 已认证的发票如何转出
  • 季报现金流量表可以不填吗
  • 什么是资产负债率
  • 一般纳税人可以开1%的发票吗
  • 银行取钱需要签协议吗
  • 残保金申报表中的上年工资总额指所属期的上一年吗
  • 支票撕碎了怎么办
  • 无形资产摊销怎么计算
  • 私车公用违规吗
  • 银行收付款通知短信
  • 无分包声明
  • 商业汇票概念股票
  • 国家税务总局关于取消增值税扣税凭证
  • 小规模企业所得税优惠政策最新2023
  • 餐饮行业固定资产界定
  • 增值税进项余额月末转吗
  • 包工不包料都包括什么
  • 工资扣税标准计算方法
  • 收到畜禽无害化处罚通知
  • 学校食堂承包餐饮公司
  • 基本户往一般户转账用途怎么写
  • 输入法自定义按键位置
  • 预付工程款计入在建工程吗
  • Linux /bin, /sbin, /usr/bin, /usr/sbin 区别
  • 如果电脑中毒了,航佳进销存还能使用吗
  • kb4586853更新
  • 印花税怎么核算的
  • php7安装教程详解
  • 委托加工物资增值税计税依据
  • javaweb项目开发的原理
  • 进项税已认证未缴纳
  • RLHF:基于人类反馈(Human Feedback)对语言模型进行强化学习【Reinforcement Learning from Human Feedback】
  • python模块的扩展名
  • 材料短缺计入成本吗
  • 什么是税金?
  • sql server禁用
  • 销项税用转出吗
  • 预付账款用途
  • 简易计税指的是增值税吗
  • 减免城建税的会计分录
  • 可供出售金融资产公允价值变动
  • 固定资产相关业务
  • 税金及附加的核算范围
  • 发票缴销了还能恢复吗
  • 企业购买银行理财产品的会计处理
  • 采购技术服务费计取
  • 代销货物收取手续费计入
  • 股东投入固定资产怎么做账
  • 工程发票可以作废吗
  • sql安装不上去
  • 配置windows server essentials出错
  • wbs是什么文件
  • win10回收此电脑
  • mac os 如何备份
  • 如何在win7电脑上添加新的打印机
  • Linux中通过Socket文件描述符寻找连接状态介绍
  • android:Background线程池和UiThread线程池
  • cocos资源释放
  • opengl画实体
  • javascript冒泡排序代码
  • Shell脚本监控日志 出现关键字 grep提醒
  • js显示时间并且之后秒数实时更新
  • bios查看电脑配置信息
  • 深入学习习总书记系列讲话精神
  • angularjs简介
  • android开发最全教程
  • jquery切换css样式
  • jquery ztree实现树的搜索功能
  • 房地产预缴土增值税
  • 重庆税务登记证在哪里办理
  • 中山市国家税务总局阜沙分局局长杨兴华
  • 如何在河南省社会保障网上平台进行社保基数申报
  • 广州市地税服务大厅
  • 游艇车船税怎么收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设