您的位置:首页 > 其它

两种重用convertView的方法孰优孰劣?

2012-11-19 15:26 330 查看
android中使用ListView时在getview方法中需要重用convertView,用来提高系统性能。目前有两种方式:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
View view;
if(convertView == null) {
holder = new ViewHolder();
view = inflater.inflate(R.layout.list_item, null);
holder.name = (TextView) view.findViewById(R.id.textView1);
view.setTag(holder);
}else {
view =  convertView ;
}
holder = (ViewHolder) view.getTag();
holder.name.setText(list.get(position));

return view;
}


@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_item, null);
holder.name = (TextView) convertView.findViewById(R.id.textView1);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
holder.name.setText(list.get(position));

return convertView;
}


这两种方式都能达到重用convertView的目的, 唯一的区别是第一种多了一层对view的引用。

有人在做图片浏览器的时候,发现第一种的性能会比第二种稍微好一点,具体什么原因,我死活都想不明白。哪位大侠可以指点迷津?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: