convertView
试想一下,我们要实现一个列表,但是数据量很大。你可能会想到懒加载这个优化点,但是如果每次加载一个item都去创建一个对象的话,多少有点浪费性能了。所以在Android中,我们在 BaseAdapter 的 getView 方法中,可以使用convertView进行优化。
@Overridepublic View getView(int i, View convertView, ViewGroup viewGroup) {ViewHolder holder;if (convertView == null) {convertView = LayoutInflater.from(mContext).inflate(R.layout.item_list, null);holder = new ViewHolder();holder.iv_icon = convertView.findViewById(R.id.iv_icon);holder.tv_name = convertView.findViewById(R.id.tv_name);holder.tv_desc = convertView.findViewById(R.id.tv_desc);// 将视图持有者保存到转换视图当中convertView.setTag(holder);} else {holder=(ViewHolder) convertView.getTag();}Planet planet = mPlaneList.get(i);holder.iv_icon.setImageResource(planet.image);holder.tv_name.setText(planet.name);holder.tv_desc.setText(planet.desc);return convertView;}public final class ViewHolder {public ImageView iv_icon;public TextView tv_name;public TextView tv_desc;}
案例代码