位置: 编程技术 - 正文

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

  • 实物折扣的增值税
  • 税务师税法一税法二区别
  • 企业一般纳税人是什么意思
  • 投资收回的现金
  • 材料卸车费包含在哪里
  • 一次性支付一年房租怎么做账每月如何结转
  • 所得税多交怎么调整
  • 劳务分包企业所得税25%
  • 小规模纳税人季报还是月报?
  • 国外租赁行业都包括哪些
  • 投资性房地产处置时为什么要结转其他综合收益
  • 所得税滞纳金怎么做账
  • 交易性金融资产借贷方向
  • 发生销货退回增值税专用发票如何处理
  • 当月的费用次月入账可以么
  • 土地罚款可以计入成本吗?
  • 特许权使用费预扣预缴计算方法
  • 企业取得的信托计划分红缴企业所得税吗
  • 关于设备安装调试的说法
  • 公司不交增值税对法人有影响吗
  • 统借统贷协议
  • 国外进口的食品还能吃吗
  • 报销差旅费抵扣进项税分录
  • 企业收到红字发票,应该如何申报报表?
  • 人力成本包括哪三个方面
  • 个体户定期定额申报表怎么填
  • 鸿蒙超级终端搜不到
  • 用现金换承兑怎么做账
  • 个税是负数直接工资加上吗
  • 开票的附加税是多少
  • OS X Yosemite系统怎么样 OS X Yosemite功能介绍
  • PHP:oci_set_action()的用法_Oracle函数
  • 代扣的工会会费和工会经费
  • linux怎么自己写命令
  • windows 10 build 21354
  • 苹果系统公测版
  • 冲往年管理费用的账务处理是否涉及所得税
  • 偿还不了债务会怎么样
  • 提前支付的费用记账
  • 员工出差过程中猝死赔偿
  • 税控减免怎么做账
  • 什么是收付实现制?什么是权责发生制?
  • 企业利润取出税费有哪些
  • 实战到底究竟是什么意思啊
  • 会计科目借贷方向图表
  • 印花税计提分录怎么写
  • 公司购买电脑怎么入账科目
  • mysql底层是什么
  • python多线程多核
  • 老板出差司机住哪
  • 什么时候工程物资什么时候在建工程
  • 有留抵税额可以注销吗
  • 企业长期资金来源有哪些
  • sqlserver2005属于
  • 关联表的作用
  • 怎么计算城市
  • 库存现金是什么凭证
  • 溢价收购股权所得税税率
  • 临时工工资应计入什么科目
  • 工程预付税金如何计算
  • 应收分保未到期责任准备金是什么科目
  • 收到服务费发票可以计入什么科目
  • 小企业资产总额怎么计算
  • 优秀员工奖金领取表模板
  • 银行日记账登记依据
  • 购买税盘全额抵扣会计分录
  • 年度报告应包括哪些
  • 公司基本户可以取现金吗
  • 企业增资的流程
  • 如何设置银行存款日记账
  • windows8禁用uac
  • mscorsvw.exe是什么
  • OS X 10.10 Yosemite的新特性与iOS联系更紧密
  • windows8使用教程
  • win8系统与win10哪个好
  • 查看进程pid的命令是
  • jQuery Ajax页面局部加载方法汇总
  • 工匠称号有什么待遇?
  • 亚马逊墨西哥站扣款20
  • 贵州电子税务局怎么登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设