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