2

https://nodeload.github.com/necronet/section-list/zip/masterの指示に従ってセクション リスト ビューを実装しました。すべて正常に動作しますが、好奇心から、Android OS がアダプターの機能で正しい convertView をどのように提供するかを知りたいですgetView(以下のコード)。ビューには、SectionView と ItemView の 2 種類 (2 つの異なるレイアウト ファイル) があります。最初のセクションとアイテムが画面の外にスクロールされ、View Recycler に 2 つのビューがある状況を想像してみてください。次に、新しいビューが下からスクロールインされようとしています。関数では、getView関数ごとに位置を確認する必要がありますisSection、その位置でどのビューを表示する必要があるかを決定します。驚くべきことは、Android OS (またはその下にあるもの) が常に正しい convertView (リサイクラーの 2 種類のビューの中で) をリサイクルすることです。ありがとう。

 public View getView(final int position, final View convertView,
                        final ViewGroup parent) {
        if (isSection(position)) {
            return getSectionView(convertView, sectionPositions.get(position));
        }
        return getItemView(getLinkedPosition(position), convertView,
                parent);
    }
4

1 に答える 1

1

getViewこれは、アダプターでどのように機能するかについての私の理解です:

これは、リスト内の特定のアイテムがどの「タイプ」のビューであるかを返します-したがって、正しいを使用しconvertViewますgetView()

@Override
public int getItemViewType(int position) {
    return 0;
}

そして、これはいくつの異なるタイプのビューがあるかを返します:

@Override
public int getViewTypeCount() {
    return 0;
}

もちろん、これらは適切なコードでは 0 を返しません。

于 2013-01-21T03:01:40.893 に答える