位置: 编程技术 - 正文

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

  • 个体摊贩
  • 公司申报个税流程
  • 如何计算转让金融商品盘亏应交增值税
  • 如何合伙注册公司
  • 储值卡金额算什么科目
  • 基本户可以直接转账给个人吗
  • 年数总和法怎么做
  • 取暖费摊销期限是多少年
  • 个税app显示已离职是什么原因
  • 资产负债表存货项目期末余额怎么算
  • 财务部门使用固定资产的折旧计入管理费用
  • 跨境电商怎么交税
  • 公司实行注册资本认缴制
  • 非居民企业股权转让协议
  • 活动现金红包
  • 代征手续费返还
  • 年终奖社保怎么算
  • 微信提现手续费最新规定
  • 营改增对资产负债表的影响
  • 如何申报固定资产投资
  • 有限合伙企业需要承担无限连带责任吗
  • 简易征收当月已经开出的17%怎么办?
  • 投资利润率的计算结果不受建设期的长短
  • 个人独资企业简易注销流程及材料
  • 固定资产一次计入成本费用
  • 打包贷款和出口信贷的区别和联系
  • 进项认证转出 会计得入账吗
  • macbook pro怎么检测
  • 电脑bios错误怎么办
  • 高新技术企业研发费比例
  • 上市公司股东股份轮候冻结是什么意思
  • 工程款清欠管理办法
  • 期房如何快速卖出
  • 增值税专用发票有几联?
  • upload靶场搭建
  • php的execute
  • 上季度的亏损可以弥补下季度的企业所得税
  • 应付职工薪酬负数风险
  • 创建javascript函数
  • 融资租入的办公楼
  • js删除对象的方法
  • 工业 智能
  • php中为什么图片显示不出来
  • 库存商品暂估入库金额如何确定
  • 固定资产停止使用
  • mongodb 日志
  • Win2003系统下SQL Server 2008安装图解教程(详细图解)
  • 预提费用是应付账款吗
  • 接受母公司捐赠现金分录
  • 个税专项附加扣除什么意思
  • 差旅费报销会计分录题目
  • 发票种类包括
  • 销售中介费一般收多少
  • 成本发票未到怎么入账
  • 投资利润率多少算合理
  • 融资手续费计入什么成本
  • 固定资产一次性扣除申报表怎么填
  • 自产自销农产品免税备案取消
  • 分支机构属于小型微利企业吗?
  • 企业研发支出的核算内容
  • 应收账款坏账的说明
  • 从一个公司到另一个公司叫什么
  • 关联企业有什么好处
  • 没有期初数据如何建账
  • mysql m1
  • fedora gnome
  • popblock.exe
  • win8.1 升级
  • windows 8.1 build 9600
  • linux系统软件包安装
  • mac的mail登不上
  • win10周年版
  • win7右键没有
  • cmd命令是干嘛的
  • 你不一定知道的地方
  • unity基础包
  • jquery设置滚动条到底部
  • Node.js中的什么模块是用于处理文件和目录的
  • 税金乘以12%是什么
  • 记账凭证编制的依据可以用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设