位置: 编程技术 - 正文

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

  • 赊销和分销时纳税义务发生时间是什么时候?
  • 销项税额的计算方法
  • 委托加工发出材料成本会计分录
  • 单位借款是否纳税
  • 业务招待费扣除基数的收入包括哪些
  • 公积金缴存基数多久调整一次
  • 建筑企业增值税怎么算
  • 可供出售金融资产会计处理
  • 收到工伤赔偿款会计分录
  • 电子承兑汇票如何贴现网银操作
  • 机动车销售发票怎么抵扣
  • 派发股票股利如何入账处理合适?
  • 计提福利是什么
  • 发票红冲退税是全额退吗
  • 土地转让收入怎么交所得税?
  • 高薪员工如何降职
  • 增值税专用发票几个点
  • 继承或赠与所得的房产
  • 垃圾处理站利润
  • 需要安装和检验的什么时候确认收入
  • 去国外参加展会带什么东西
  • windows更新出现错误重新打开设置
  • biospwds最新版
  • 股东分红怎么处理
  • 深入分析php引用文献
  • 有关预收账款的说法正确的是
  • vue 页面生成pdf
  • 内部退养如何缴纳个人所得税
  • 流转税政策
  • 车辆被盗
  • 完美替身好看吗
  • 未取得合法凭证税前扣除
  • 什么是工资薪金所得
  • 单目深度估计算法
  • 订单超时十分钟
  • 帝国cms使用手册
  • 下列关于纳税人发生兼营行为
  • okhttp3源码分析
  • sql server go语句
  • 可以直接在企业所得税税前扣除的是
  • 一般纳税人企业所得税税率2023
  • 预期信用损失率的确认依据和过程
  • 金税盘减免税款分录
  • 个人出租不动产月租金不超10万免税
  • 核销应收帐款分录
  • 财务费用如何调到筹资费用
  • 贷款服务的利息怎么算
  • 进口增值税与关税的关系
  • 仓储领域
  • 差旅费一般包括往返及当地的交通费
  • 工会经费支出范围
  • 研发费用账务处理实例
  • “制造费用”账户如何设置明细账?
  • mysql查询语句中的逻辑运算符
  • sql server2008启动
  • SQL Server提示"选定的用户拥有对象,所以无法除去该用户”
  • winxp关机立马自动重启
  • freebsd操作命令
  • ubuntu20.04卸载
  • mac快捷键使用
  • linux文本处理实验报告
  • Ubuntu系统怎么设置IP
  • find.exe应用程序错误
  • win7怎么查看系统位数
  • exact form
  • Android游戏开发实训总结
  • 输入命令的三种方法
  • vue解析md
  • 基于JAVASCRIPT实现的可视化工具是
  • 从零开始的基础篇
  • 动态生成xml
  • 安卓网络管理类app
  • 原生js页面滚动怎么设置
  • 江苏电子税务局app下载
  • 扬州地方税务局在哪
  • 地税局契税发票编号查询
  • 东莞国家税务局横沥分局
  • 香港pcc价格
  • 工会经费怎么缴付
  • 20 百望九赋税控盘管理员默认指令多少?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设