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
是什么?如何理解这里面的条件语句?
簡単に言うと、 を再利用するためのものであり、 のたびにレイアウト リソース ファイルから新しいビューを生成する (またはコードを通じて新しいビューを生成する) ことを回避します。
たとえば、
ListView
やGridView
のように、画面上に N 個の項目を表示できる場合、getView
が N 回呼び出され、対応する位置のビューが提供されます。以前に生成したビューを再利用すると効率が向上します。android.widget.Adapter ソース コード ファイル内の getView() メソッドのパラメーターの説明:
ただし、それが空であり、適切なタイプであるかどうかを確認する必要があります。
これは、重複したオブジェクトの作成を避けるためです。より良い再利用のためです
getView は、リストビューなどに記入するためにアダプターを介してビュー オブジェクトを作成し、convertview がキャッシュされているかどうかを判断します。キャッシュされている場合、新しいビューを作成する必要はなく、再利用することができます。達成。現在、getview メソッドは一般的にこの方法で記述されていません。Android 用に記述してからかなり時間が経ちました。