android - 如何理解BaseAdapter.getVeiw()参数convertView的null与非null
PHP中文网
PHP中文网 2017-04-17 14:32:25
0
3
985
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是什么?如何理解这里面的条件语句?

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(3)
巴扎黑

簡単に言うと、 を再利用するためのものであり、 のたびにレイアウト リソース ファイルから新しいビューを生成する (またはコードを通じて新しいビューを生成する) ことを回避します。
たとえば、ListViewGridView のように、画面上に N 個の項目を表示できる場合、getView が N 回呼び出され、対応する位置のビューが提供されます。以前に生成したビューを再利用すると効率が向上します。

android.widget.Adapter ソース コード ファイル内の getView() メソッドのパラメーターの説明:

@convertView
可能であれば、再利用する古いビュー 注: 使用する前に、このビューが null でなく、適切なタイプであることを確認する必要があります。

ただし、それが空であり、適切なタイプであるかどうかを確認する必要があります。

いいねを押す +0
洪涛

これは、重複したオブジェクトの作成を避けるためです。より良い再利用のためです

いいねを押す +0
Ty80

getView は、リストビューなどに記入するためにアダプターを介してビュー オブジェクトを作成し、convertview がキャッシュされているかどうかを判断します。キャッシュされている場合、新しいビューを作成する必要はなく、再利用することができます。達成。現在、getview メソッドは一般的にこの方法で記述されていません。Android 用に記述してからかなり時間が経ちました。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート