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 就行了。
在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 就行了。