首页 > 技术文章 > ListView优化

yangcong 2013-10-16 09:30 原文

1.复用convertView
在getItemView中,判断convertView是否为空,如果不为空,可复用。
2.异步加载图片
item中如果包含有webimage,那么最好异步加载
3.快速滑动时不显示图片
当快速滑动列表时(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE 和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来
 
还可以进一步优化
在listview中  获取view 的操作比较耗时,因为这个操作时在布局xml文件中遍历所有节点进行判断后 才获取的。
可以用以个静态代码块 将这些view  的引用保存起来。例如
static class ViewHolder {
                TextView  tv_mode  ;
                TextView  tv_number ;
                TextView  iv_callsms_delete ;}
//寻找到视图引用 把引用存起来.
hodler = new ViewHolder();
                                hodler.tv_mode = (TextView) view.findViewById(R.id.tv_call_sms_mode);
                                hodler.tv_number = (TextView) view.findViewById(R.id.tv_call_sms_number);
                                hodler.iv_callsms_delete = (ImageView) view.findViewById(R.id.iv_callsms_delete);
                                view.setTag(hodler);
后面要调用相应组件的时候直接 使用 holder.xxx 就行了。

推荐阅读