位置: 编程技术 - 正文

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

  • 车船税征税范围口诀
  • 房产租金收入免不免房产税?
  • 虚开增值税如何获利
  • 2021年餐饮业的税率是多少?
  • 设备转产需要停止折旧吗
  • 其他项目工会筹备金怎么报税
  • 实收资本账
  • 销售软件怎么做账
  • 残疾人保障金计算方法
  • 取得经营所得需要纳税人自行申报嘛
  • 合理合法的纳税人是谁
  • 企业发票专用章使用涉及的审批流程
  • 建筑公司现金日记账怎么填写
  • 公司亏损多久可以申请解散
  • 建筑材料资源利用
  • 企业利用个体户走账
  • 机动车发票抵扣联有什么用
  • 高亮!这些发票不能抵扣增值税
  • 固定资产提前报废
  • 费用类有什么科目
  • 股权增资稀释股价会涨吗
  • 自查补缴税款严重吗
  • 进口增值税内销可以抵扣吗
  • 处置固定资产损失的账务处理
  • 个人代收工程款分录
  • pvlsvr.exe - pvlsvr是什么进程 有什么用
  • 会计分录错误用什么方法更正
  • 在php中,字符串有哪些表示形式
  • 结转消费税的会计分录
  • php ado
  • 财产保险公司手续费税前扣除最新
  • 应付职工薪酬的借方和贷方
  • 短期借款利息的核算不可能涉及的账户是
  • php激活码永久
  • 应收账款与预收账款重分类表怎么做
  • 特斯拉适用于什么车型
  • php 后端
  • 单文件php文件列表
  • 纳税检查调整销售额什么意思
  • 汽车增值税是
  • 出口退税会计分录怎么写
  • php打不开网页
  • 支付厂房租赁费怎么入账
  • 支付广告费没有票怎么入账
  • python send_from_directory
  • 缴纳文化事业建设费
  • 应收账款是否存在的审计程序
  • 企业分配的股票股利宣告发放
  • sql server 2008打开界面
  • 企业所得税研发费用加计扣除例题
  • 以前年度损益调整属于哪类科目
  • 小规模超30万附加税有减免吗
  • 编制记账凭证的步骤
  • 股权和出资的关系
  • 暂估入库有时间限制吗
  • 企业第四季度是什么时候
  • 领用包装物用于包装产品的会计分录
  • 补缴的以前年度的税费怎么记账
  • 预付调整到其他应付款
  • 电梯在固定资产里属于什么设备类别
  • 登记三栏式现金日记账和银行存款日记账的依据
  • xp桌面底部任务栏不见了
  • 晨枫U盘启动工具v2.0
  • 求windows7用户账户
  • linux创建个人主页
  • imecmnt.exe
  • linux系统的服务器
  • linux系统查询进程
  • win10麦克风无法说话
  • linux怎么挂载文件夹
  • dos命令批量处理文件
  • 中国现在很多网站
  • 64位Win7环境下vs2013配置opengl
  • javascript要打开吗
  • android强制关机
  • 公司加油卡充值需要带什么
  • 地税局和税务局一样吗
  • 国家税务贵州省税务局
  • 浙江欧派和广东欧派哪个好
  • 审计报告非标准意见
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设