各行に異なるレイアウトを含む単一の ListView を作成するための最適な方法を見つけようとしています。リスト ビュー全体のカスタム行をサポートするためにカスタム行 + カスタム配列アダプターを作成する方法はわかっていますが、ListView にさまざまな行スタイルを実装するにはどうすればよいでしょうか。
ベストアンサー1
レイアウトの種類がいくつあるかわかっているので、それらの方法を使用することが可能です。
getViewTypeCount()
- このメソッドは、リストに何種類の行があるかという情報を返します。
getItemViewType(int position)
- 位置に基づいてどのレイアウトタイプを使用するかの情報を返します
次に、レイアウトが null の場合にのみインフレートし、 を使用してタイプを決定しますgetItemViewType
。
見るこのチュートリアル詳細については。
コメントで説明した構造の最適化を実現するには、次の方法をお勧めします。
- というオブジェクトにビューを保存します。メソッドで毎回
ViewHolder
呼び出す必要がなくなるため、速度が向上します。findViewById()
getView
APIデモのリスト14。 - すべてのプロパティの組み合わせに適合し、現在の位置に要素がない場合は一部の要素を非表示にする汎用レイアウトを 1 つ作成します。
それがお役に立てば幸いです。データ構造と、それを行に正確にどのようにマッピングするかについての情報を記載した XML スタブを提供していただければ、より正確なアドバイスを提供できます。ピクセル単位で。