如何理解BaseAdapter.getVeiw()参数convertView的null与非null
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageview;
if (convertView==null){
imageview=new ImageView(MyActivity.this);
imageview.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
imageview.setPadding(5,0,5,0);
}else{
imageview=(ImageView)convertView;
}
imageview.setImageResource(imageId[position]);
return imageview;
}
当一张图片滑进屏幕的时候,调用这个
getview()
?那么其中第一个if条件
null
是什么?如何理解这里面的条件语句?
noV.iAe
9 years, 5 months ago
Answers
简单来说,是为了
复用,避免每次从layout资源文件生成新的视图(或者是通过代码生成新的视图)
。
比如像
ListView
或者
GridView
,屏幕上若能显N个条目,那么
getView
就被调用N次,以提供对应位置的视图。而复用之前已经生成的视图,可以提高效率。
android.widget.Adapter源码文件中getView()方法的参数说明:
@convertView
The old view to reuse, if possible. Note: You should check that this view is non-null and of an appropriate type before using.
但你仍需要检查它是否为空,以及类型是否适当。
听说桐岛要退部
answered 9 years, 5 months ago