位置: 编程技术 - 正文

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

  • 那些车不用交税
  • 计提坏账部分收入怎么算
  • 什么是存货周转率?存货周转率的意义是什么
  • 预收账款确认收入
  • 收不回来的装修钱怎么办
  • 每年的第一季度
  • 出售的固定资产通过固定资产清理吗
  • 公司购买车辆抵扣税
  • 所得税一般纳税人几个点
  • 个人建筑安装如何交税
  • 银行直接扣的手续费怎么记账
  • 什么样的应税行为可以扣除
  • 企业法人不发工资合法吗
  • 房产评估增值部门有哪些
  • 全盘账会计的工作流程是什么
  • 教育费附加免征还计提吗
  • 城镇土地使用税税率
  • 英雄联盟电脑软件图片
  • mac本host文件
  • 销售货物是什么意思
  • 集团公司管理费提取办法
  • 跨年度坏账准备转回账务处理
  • 印花税哪里买
  • 如何补办二手车牌照
  • 工资储备金制度
  • 企业投资固定资产
  • 现在用yii框架的人还多么
  • 普通发票有抵扣联没
  • elementui中文网
  • 法定盈余公积使用于什么
  • ros机器人自主导航中膨胀地图图层的颜色
  • 基于MATLAB的车牌识别
  • opencv安装教程vs2019
  • 错误日志怎么修复
  • 事业单位结余资金管理办法
  • 织梦怎么改文字
  • dedecms转其他cms
  • 运输服务是什么
  • 债务豁免涉税
  • 固定资产投资额怎么计算
  • Java连接sqlserver2008数据库代码
  • PostgreSQL教程(二十):PL/pgSQL过程语言
  • 无形资产的摊销年限及摊销方法
  • 跨年度少计摊销怎么做账
  • 产品广告费属于什么会计科目类别
  • 加盟费明细
  • 只有发票没有银行回单怎么做账
  • 出库销售会计分录
  • 待摊费用和预付费用的区别
  • 待处理财产损溢借贷反向
  • 代扣代缴完税凭证只能次月抵扣吗
  • 长期待摊费用如何做账
  • mysql.sock在哪里
  • mysq删除数据库
  • win2003开启远程桌面
  • windows8.1右下角水印
  • winxp不显示桌面图标
  • ubuntu系统如何
  • winxp慢怎么办
  • 苹果mac系统怎么截屏快捷键
  • mac识别文字软件
  • centos7yum安装
  • linux系统的配置
  • windows8.1使用指南
  • win7系统怎么查看隐藏文件夹
  • input submit、button和回车键提交数据详解
  • 阴影效果有什么用
  • html5画布五角星
  • 低端显卡n卡设置
  • js中cookie
  • 深入讲解MACD:MACD红绿柱
  • jquery怎么给文本框赋值
  • 安卓拍照闪退
  • Using Django with GAE Python 后台抓取多个网站的页面全文
  • 青海国税发票查询系统
  • 广东每年交多少税给国家
  • 简述进料加工对中国的意义
  • 补充协议交印花税嘛
  • 在监狱要花钱吗
  • 中药生产与加工和中药制药技术区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设