位置: 编程技术 - 正文

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

  • 公司注销后虚开还查吗
  • 小规模纳税人月收入多少免征增值税
  • 养鸡增值税税率是多少
  • 税务登记管理办法2023
  • 高新企业奖励金怎么领
  • 增值税发票认证平台
  • 分公司报增值税吗
  • 公司把钱借给个人
  • 原材料的可变现净值等于产品可变现净值减加工费么
  • 能否向小规模纳税人开具专票
  • 处理企业的财产有哪些
  • 车辆购置税计税依据包括消费税吗
  • 房地产企业可以抵扣进项税额的范围
  • 采用托收承付方式怎么做分录?
  • 银行收取的利息要交税吗
  • 支付房屋租金计入什么会计科目
  • 增值税抵扣凭证包括农产品收购发票
  • 申报专项资金项目是什么
  • 租房提取的话可以全部提取吗
  • 高新技术企业优惠政策叠加
  • 哪些理财产品能赎回
  • 建设工程是否可以约定非工程所在地仲裁委仲裁
  • 有销项没有进项怎么结算成本
  • 金税盘发票显示不出确认
  • 调整会计分录是什么
  • 贸易公司销售
  • 认缴制没有实资本会怎么样
  • 服务成本怎么处理
  • php循环结构有哪几种语句
  • 上月开的发票会计漏做帐本月应如何补做账?
  • php timestamp
  • 深度科技win10
  • 营改增后租金如何交税
  • 内部审计范围有哪些
  • framework在哪里打开
  • 购进食用油的会计分录
  • php用在哪些方面
  • 应收票据计提利息
  • vue实战开发项目视频
  • 收取包装物押金会计分录
  • php static变量
  • python socket发送文件
  • 维修费用的处理规定
  • mssql备份数据库
  • 独立法人企业关系怎么写
  • 应发工资账务处理
  • 物流公司车辆过户要3万
  • 土地违约金的法律规定
  • 新公司核税需要什么材料
  • 车辆保险都入什么
  • 购买发票打印机如何账务处理?
  • 营改增后混凝土税率
  • 产品成本核算有多条原则和要求
  • mysql中的limit用法有哪些(推荐)
  • 完美解决索尼电视arc无声音
  • bios设置u盘启动顺序
  • windows的设置
  • ubuntu启动vncserver
  • cyb2k.exe是安全进程吗 cyb2k进程危险吗
  • mac电脑安装windows
  • 怎么从win8装回win7
  • 刻录ghost安装光盘
  • windows7搭建ftp
  • 手机ssh远程连接服务器
  • quick cocos UIListView之isItemInViewRect方法修正
  • OpenGL Tips: 在Visual C++中调用FreeGLUT
  • jquery示例
  • unity开发用什么电脑比较好
  • opengl颜色代码表
  • cpu时钟预取实例是什么
  • svn如何cleanup
  • iframe的替代方案
  • unity更新需要重新下载吗
  • unity接入安卓sdk
  • xml文件的数据如何读取
  • Android开发工具
  • python smtp ssl
  • 财税老师刘杨年龄
  • 地方税务局办税流程
  • 12333热线时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设