位置: 编程技术 - 正文

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

  • 财务报表中的应交税费包括什么
  • 不是党员证明哪些情况需要开
  • 收到0税率发票是否可以给对方开6税率发票
  • 经营性项目应收减少额怎么算
  • 自产的产品
  • 增值税一般纳税人证明怎么查询
  • 购进免税农产品怎么计算进项税额
  • 快递费税率是6还是9
  • 企业可以申请停缴社保吗
  • 所得税汇算清缴补税的会计处理
  • 研发费用加计扣除是什么意思啊
  • 员工报销现在用什么软件
  • 怎么打开资源管理器
  • 发票登记薄的样式是什么
  • 汽车行业返利账务处理
  • 苹果手机升级微信版本
  • 服务器数据迁移到新的服务器
  • Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
  • win10怎么推送win11
  • soft version
  • win10蓝牙怎么开ldac
  • 自产货物用于生产
  • 最好卖的游戏机排行榜
  • 森林里雾气弥漫,给大家带来了什么困难?
  • php操作mysql数据库
  • 银行转来委托收款
  • 进项税可以留底多长时间
  • 转让旧固定资产增值税例题
  • 小规模纳税人减半征收的六税两费
  • php+mysql+jquery实现日历签到功能
  • php traits
  • vue的number
  • vue setstate
  • mac配置flutter环境变量
  • python单子
  • mysql5.6允许远程连接
  • dedecms 授权
  • 生产企业免抵退是什么意思
  • 原材料账户该如何做账
  • 其他应付款转实收资本股东会决议
  • 专项附加可以随便填吗
  • win7系统安装包在哪个文件夹
  • 个人所得税手续费返还增值税申报表怎么填
  • 未投入使用的固定资产折旧计入什么科目
  • 应发工资账务处理
  • 购买固定资产的运费计入什么科目
  • 本年利润怎么结转成未分配利润
  • 应收账款多久收不回来作为坏账
  • 应付职工薪酬完整会计处理
  • 防伪系统制作
  • 以公司名义开的口腔诊所法人和负责人是两个人么
  • 哪些发票可以报销哪些发票不可以报销
  • 即征即退的增值税退城建税吗
  • 冲暂估成本能冲部分暂估吗
  • mysql三层架构
  • mysql 5.7.11 zip安装配置方法图文教程
  • mysql日志有哪些
  • win8.1使用技巧
  • win8.1 升级
  • win10找不到打印机驱动
  • win7运行慢如何解决办法
  • win7系统硬盘
  • win8.1 应用商店是不是不能用了
  • win10系统打开文件夹就不停的闪
  • jQuery+PHP实现可编辑表格字段内容并实时保存
  • Android GBK与UTF-8
  • code::blocks怎么用
  • Node.js中的construct构造函数
  • nginx日志切割原理
  • js实现原理
  • animate怎么整个图层移动
  • js的iframe
  • javascript面向对象编程指南
  • 律师提成怎么计算出来的
  • 文化公司税务筹划
  • 浙江省发票勾选认证操作流程2021
  • 2021辽宁粮食直补
  • 加强党的作风建设是目前全党的中心
  • 辽宁房产税2021年新规定来了,自2021年1月28日起执行
  • 企业在开办过程中的具体流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设