系统调用getView()方法,逐一绘制listview的每一行
当启动Activity呈现第一屏ListView的时候,convertView为零。
当用户向下滚动ListView时,上面的条目变为不可见,下面出现新的条目。
这时候convertView不再为空,而是创建了一系列的convertView的值。
它缓存了不可见条目的数据,后面再出来的条目只需要更新convertView中的数据。
(就是重复利用已经绘制的view)
ViewHolder
还需要在控件的容器中通过findViewById的方法来获得控件。
当convertView为空时,用setTag()方法为每个View绑定一个存放控件的ViewHolder对象。
当convertView不为空,重复利用已经创建的view的时候,使用getTag()方法获取绑定的ViewHolder对象
当启动Activity呈现第一屏ListView的时候,convertView为零。
当用户向下滚动ListView时,上面的条目变为不可见,下面出现新的条目。
这时候convertView不再为空,而是创建了一系列的convertView的值。
它缓存了不可见条目的数据,后面再出来的条目只需要更新convertView中的数据。
(就是重复利用已经绘制的view)
ViewHolder
还需要在控件的容器中通过findViewById的方法来获得控件。
当convertView为空时,用setTag()方法为每个View绑定一个存放控件的ViewHolder对象。
当convertView不为空,重复利用已经创建的view的时候,使用getTag()方法获取绑定的ViewHolder对象