Android ListView相关
来源:互联网 发布:产品展示网站php源码 编辑:程序博客网 时间:2024/05/01 23:47
- ViewHolder 优化加载速度
- 支持不同布局的item
- 实例代码
- 参考
记录一些listview的使用技巧。
ViewHolder 优化加载速度
通过convertView机制重用item,以及通过ViewHolder减少查找XML的时间。
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; // 判断是否缓存 if (convertView == null) { holder = new ViewHolder(); // 通过LayoutInflater实例化布局 convertView = mInflater.inflate(R.layout.notify_item, null); holder.img = (ImageView) convertView.findViewById(R.id.imageView); holder.title = (TextView) convertView.findViewById(R.id.textView); convertView.setTag(holder); } else { // 通过tag找到缓存的布局 holder = (ViewHolder) convertView.getTag(); } // 设置布局中控件要显示的视图 holder.img.setBackgroundResource(R.drawable.ic_launcher); holder.title.setText(mData.get(position)); return convertView; } public final class ViewHolder { public ImageView img; public TextView title; }
支持不同布局的item
ListView设置支持不同类型的item,比如我们支持两种类型的item,需要增加两个方法判断某个位置item的类型以及在getView中根据类型加载不同的布局。
@Override public int getItemViewType(int position) { ChatItemListViewBean bean = mData.get(position); return bean.getType(); } @Override public int getViewTypeCount() { return 2; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { if (getItemViewType(position) == 0) { holder = new ViewHolder(); convertView = mInflater.inflate( R.layout.chat_item_itemin, null); holder.icon = (ImageView) convertView.findViewById( R.id.icon_in); holder.text = (TextView) convertView.findViewById( R.id.text_in); } else { holder = new ViewHolder(); convertView = mInflater.inflate( R.layout.chat_item_itemout, null); holder.icon = (ImageView) convertView.findViewById( R.id.icon_out); holder.text = (TextView) convertView.findViewById( R.id.text_out); } convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.icon.setImageBitmap(mData.get(position).getIcon()); holder.text.setText(mData.get(position).getText()); return convertView; } public final class ViewHolder { public ImageView icon; public TextView text; }
实例代码
github
参考
博客1
0 0
- android listview 相关
- Android 之 ListView相关
- android ListView相关
- Android ListView相关
- Android Listview相关
- Android ListView相关技术
- android listView 相关
- Android ListView相关知识
- android 之 ListView相关
- android:ListView相关属性说明
- Android Listview相关各种特效
- Android中ListView相关属性
- Android ListView相关功能介绍
- Android ListView 使用相关技巧
- Android ListView 属性相关简介
- Android关于ListView滑动相关
- Android ListView 布局相关的内容
- Android ListView 功能的相关实现
- BZOJ1059: [ZJOI2007]矩阵游戏
- System.Web.UI.ViewStateException: Invalid viewstate 解决方法
- OpenJudge_P7598 最匹配的矩阵
- 控制寄存器和系统地址寄存器
- angularJS学习之路(二十八)---拦截服务
- Android ListView相关
- 从B树、B+树、B*树谈到R 树 http://blog.csdn.net/v_JULY_v/article/details/6530142/
- Leveldb源码分析--7
- 形象解释PID算法+PID算法源代码
- POJ 3250-Bad Hair Day【栈】
- zoj3258 DP 01背包
- 适配器模式Adapter(结构型)
- 基于A20处理器的RGB接口的LCD显示屏的移植
- git操作---时光机穿梭