ListView优化之ViewHolder
当ListView每个item都比较复杂的时候,复用的时候更新item的内容需要我们找到每一个item中的子控件,来更新他们的内容,查找item中子控件这个过程是
非常浪费时间的,我们可以用setTag的方式将子控件与一个viewholder关联起来,在复用的时候直接getTag即可得到viewholder,节省了查找子控件的时间
//根据listview中要绑定的item子控件来构造viewholderstatic class ViewHolder{ImageView iv_icon;TextView tv_app_size;TextView tv_app_name;}private class AppManagerAdapter extends BaseAdapter{private ViewHolder holder;public int getCount() {return mSystems.size();}public Object getItem(int position) {AppInfo appInfo;appInfo =mSystems.get(position - 1 - mUsers.size() - 1);return appInfo;}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {View view = null;if(convertView != null && convertView instanceof LinearLayout){view = convertView;//复用的时候直接getTag,省去了频繁findViewByIdholder = (ViewHolder) view.getTag();}else{view = View.inflate(AppManagerActivity.this, R.layout.item_app_manager, null);//创建一个holder对象holder = new ViewHolder();//将holder与item子控件关联holder.iv_icon = (ImageView) view.findViewById(R.id.iv_icon);holder.tv_app_size = (TextView) view.findViewById(R.id.tv_app_size);holder.tv_app_name = (TextView) view.findViewById(R.id.tv_app_name);//设置tagview.setTag(holder);}//获取应用的基本数据。AppInfo appInfo;appInfo = mSystems.get(position - 1 - mUsers.size() - 1 );//设置数据holder.iv_icon.setImageDrawable(appInfo.getIcon());holder.tv_app_size.setText(appInfo.getApkSize());holder.tv_app_name.setText(appInfo.getAppName());return view;}}
ListView优化之ViewHolder相关推荐
- ListView优化的代码
第三种ListView优化:通过convertView+ViewHolder来实现,ViewHolder就是一个静态类,使用 ViewHolder 的关键好处是缓存了显示数据的视图(View),加快了 ...
- 【提升栈】ListView优化
前言 ListView优化一直是一个老生常谈的问题.无论是面试还是寻常的开发中,ListView永远不会被忽略掉,那么这篇文章我们来看看怎样最大化的优化ListView的性能. 1.在adapter中 ...
- ListView优化机制及滑动时数据时出现的数据错乱重复问题
ListView优化机制及滑动时数据时出现的数据错乱重复问题 转载于:https://www.cnblogs.com/zhujiabin/p/5596998.html
- Android之ListView优化
关于ListView几个方面的优化: ListView的大小设定固定值; 复用convertView, 使用ViewHolder提高在容器中查找组件的效率; 使用分页加载; 快速滚动时, item不显 ...
- 面试之 listview优化
2019独角兽企业重金招聘Python工程师标准>>> 摘用别人的,谢谢作者 Adapter的作用是界面与数据之间的桥梁,通过设置适配器至ListView控件后(如调用ListVie ...
- Android listview优化以及listview混合itemview
listView = (ListView) findViewById(R.id.listview); mAdapter = new VideoListAdapter(this); listView.s ...
- Android优化系列之ListView优化老生常谈
本文内容:adapter,listview的优化,RecycleBi,google大会推荐优化, 实现ListView的过程,Adapter起到了至关重要的作用,不仅仅因为getview()方法.那么 ...
- ListView优化机制及滑动时数据时出现的数据错乱重复问题 图片、checkBox等
该篇内容主要是记录我在实际开发中遇到的ListView滑动时数据错乱的几种情况,以及解决方法.在进行ListView滑动时数据错乱问题讨论之前会对ListView所谓的<优化>进行说明.文 ...
- Android ListView优化之局部刷新(更新)(非notifyDataSetChanged)
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53020164 [DylanAndroid的csdn博客] 在Android开发 ...
- Android开发实战《手机安全卫士》——8.“通信卫士”模块实现 JUnit测试 ListView优化
文章目录 1.高级工具--去电归属地显示 2.通信卫士--黑名单布局编写 3.通信卫士--黑名单数据库 4.通信卫士--黑名单CRUD功能实现 5.通信卫士--JUnit测试 6.通信卫士--黑名单号 ...
最新文章
- PCA(2):PCA算法实现的两种方式
- R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例、拟合方差分析模型(two-way ANOVA)、计算Eta Squared
- 大数据基础设施建设需要得到重视 | 记清华大数据“应用·创新”讲座
- 华硕主板X99-E WS/USB 3.1固件更新
- c的关于数组初始化 和 memset用法
- PHP中等良好优秀,成绩优秀,中等,良好怎么分的啊?分为哪几个?
- php web server setup,PHP本地开发利器:内置Web Server
- SL4A/Py4A直接在adb中用python加载脚本
- Ubuntu下Hbase安装(一、相应的版本Hbase下载)
- python你TM太皮了——区区30行代码就能记录键盘的一举一动
- 职教云计算机网络基础题库,智慧职教云课堂APP计算机组装与维护章节测试答案...
- 发送邮件功能:使用Spring Email、邮件工具类、使用Thymeleaf模板引擎 发送html邮件
- kubeadm集群化部署多master节点(生产环境适用)
- 基于ARM的嵌入式Linux开发平台
- 计算机网络原理【第三章 数据链路层】课后习题答案
- 6-2 两个字符串穿插 (10 分) pta c语言
- 导航窗格里计算机在桌面下,电脑桌面工具栏如何调到下方
- 对世界观的一些常识性认识,总结看过的各种东西,三十而立,需要成熟思维了
- HTML中常用的空白字符写法
- 【大数据入门核心技术-Hbase】(一)HBase简介
热门文章
- AvalonDock使用(2)-简单布局设置
- PTA离散数学集合论自测(无答案版)
- DSP方案山景AP8224C2芯片可烧录适用USB声卡降噪麦克风
- 2020年全球石英晶振行业现状、竞争格局及未来发展趋势分析,5G推动万物互联,带动行业需求「图」
- 【U盘量产】你的U盘坏了吗
- 组态TwinCat软件安装时,There are some files marked for deletion on next reboot.Please reboot first and then
- 网络爬虫——淘宝网页面分析思路
- 机器人也会骑车?日本村田顽童来京秀车技
- 华为access、trunk、hybird接口从tag和untag进行了解。
- html5生成桌面图标,简单几步打造独一无二的动态桌面图标