2

約 20 項目と各項目 3 行のカスタム リストがあります。ログを使用して getView メソッドの呼び出し方法を追跡しました

public View getView(int position, View convertView, ViewGroup parent) {

    Log.e("getView", "at position " + position);
    View view = convertView;

    if (view == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        view = inflater.inflate(resourceId, parent, false);
    }
            // my code here

}

次に、リスト項目がロードされたときに、このログを受け取りました

"getView", "位置 0"; "getView", "位置 1"; "getView", "位置 2"; "getView", "位置 3"; "getView", "位置 0"; "getView", "位置 1"; "getView", "位置 2"; "getView", "位置 3"; "getView", "位置 4"; "getView", "位置 5"; …………

getView メソッドが 0 から 3 まで 2 回呼び出された理由を誰か教えてもらえますか?

4

1 に答える 1

1

getView メソッドが 0 から 3 まで 2 回呼び出された理由を誰か教えてもらえますか?

メソッドは、そのメソッドの一部として アダプタのメソッドを呼び出して、行の大きさを確認するために行を取得するgetViewため、2 回呼び出されます。3 つの可視行があると思いますので、この最初の 3 つの可視の子に対してメソッドを 3 回呼び出します。ListViewonMeasuregetViewViewListViewgetView

于 2012-07-28T19:57:02.417 に答える