ListView 局部刷新备忘
2016-02-04 15:46
197 查看
一、分析
listview 如果实现点赞功能,每次点赞后都调用adapter.notifyDataSetChanged();刷新,会造成只需要改变一个View,但是却调用getView多次的情况,会对性能造成些影响。所以我们需要一个方法对其进行优化。
二、优化
private void updateView(int itemIndex) {//得到当前页面第一个Item的位置
int visiblePosition = listview.getFirstVisiblePosition();
//确保所需要更新的页面在显示区域
if (itemIndex - visiblePosition >= 0) {
//得到要更新的item的view
View view = listview.getChildAt(itemIndex - visiblePosition);
//调用adapter里面的方法更新界面
adapter.updateView(view, itemIndex);
}
}
adapter里面
public void updateView(View view, int itemIndex) {
//保护
if (view == null) {
return;
}
//从view中取得holder
ViewHolder holder = (ViewHolder) view.getTag();
holder.tv.setText(models.get(itemIndex).num + “”);
}
这样就可以实现ListView局部刷新的作用。
demo地址
相关文章推荐
- 完美实现Android ListView中的TextView的跑马灯效果
- android上改变listView的选中颜色
- MySQL 优化
- Google排名优化的几个影响因素
- 选定虚拟主机 性能凸显优势
- DB2优化(简易版)
- 修改一行代码提升 Postgres 性能 100 倍
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 对优化Ruby on Rails性能的一些办法的探究
- 优化Ruby脚本效率实例分享
- Delphi7中Listview的常用功能汇总
- Delphi控件ListView的属性及使用方法详解
- 推荐Sql server一些常见性能问题的解决方法
- Asp编码优化技巧
- SQL Server误区30日谈 第9天 数据库文件收缩不会影响性能
- 和表值函数连接引发的性能问题分析
- SQLServer 2000 升级到 SQLServer 2008 性能之需要注意的地方之一
- 如何监测和优化OLAP数据库
- mysql -参数thread_cache_size优化方法 小结