1. ホーム
  2. アンドロイド

[解決済み】行ごとに異なるレイアウトのAndroid ListView

2022-03-25 19:11:34

質問

1つのListViewに各行ごとに異なるレイアウトを持たせるための最良の方法を見つけようとしています。カスタム行+カスタム配列アダプタを作成して、リストビュー全体のカスタム行をサポートする方法は知っていますが、ListViewに多くの異なる行スタイルを実装するにはどうしたらよいでしょうか?

解決方法は?

レイアウトの種類はわかっているのだから、その方法を使えばいいのです。

getViewTypeCount() - このメソッドは、リスト内に何種類の行があるかという情報を返します。

getItemViewType(int position) - 位置によってどのレイアウトタイプを使用すべきかの情報を返します。

そして、NULLの場合のみレイアウトを膨らませ、タイプは getItemViewType .

見てください このチュートリアル をご覧ください。

コメントにあるような構造の最適化を実現するために、私は提案したいと思います。

  • というオブジェクトにビューを格納する。 ViewHolder . を呼び出す必要がなくなるので、スピードアップにつながるでしょう。 findViewById() で毎回 getView メソッドを使用します。参照 APIデモのList14 .
  • プロパティのすべての組み合わせに適合し、現在の位置がそれを持っていない場合にいくつかの要素を隠す、1つの一般的なレイアウトを作成します。

ご参考になれば幸いです。もし、あなたのデータ構造と、それをどのように行にマッピングしたいかという情報をXMLスタブで提供していただければ、より正確なアドバイスを差し上げることができると思います。ピクセル単位で