RecyclerViewはViewHoldersを使用するため、各行にあらかじめ定義されたレイアウトが必要です。しかし、各行に表示されるビューの量が変わる必要がある場合はどうでしょうか?未知/可変行レイアウトのRecyclerView
たとえば、ユーザーがメッセージに画像を添付できるインスタントメッセージングアプリケーションを作成しているとします。彼らは0からx写真のどこにでも付けることができました。 RecyclerViewを作成して(サーバーからダウンロードした)これらの画像を表示するとき、それらの画像を表示するために正しい行数を含むようにするにはどうすればよいですか?
私はこれを行うと考えることができますが、本当に良いオプションのようには見えません。
- ImageViewsをonBindViewHolderで作成し、ViewHolderのレイアウトに追加します。 (これは、ViewHolderが防止しようとしているものではないでしょうか?これはおそらく、画像がたくさんある場合は遅くなるでしょう)
- ユーザーがメッセージに添付できる写真の量をxに制限し、x ImageViewsを目に見えない/行っていません。 onBindViewHolderで、画像を表示し、これらのImageViewを表示するようにImageViewsを設定します。 (&の画像を添付する場合は、x ImageViewsとx VideoViewsも追加する必要がありますか?)
- 各RecyclerViewアイテムにGridViewを配置し、GridView をonBindViewHolderの中に埋め込みます。 (これはほとんど同じことなので、 オプション#1よりも利点がないと思われます)。
これはすべて私が考えることのできることです。このような状況のために設計された他の選択肢はありませんか?あるいは、この問題に向けた典型的なアプローチは何ですか?
私はRecyclerViewで異なるビュータイプについて知っていますが、これは私の問題とは関係ありません。ビューの種類は行に異なるレイアウトを適用するためのものですが、行には静的レイアウトがあるものとします。私は、RecyclerViewアイテムがレイアウト内でさまざまなビュー数を持つソリューションが必要です。 – user7028506
私は参照してください。私はあなたの2番目の提案されたアイデアを1人の視聴者を使って行い、行コンテンツに基づいて表示/非表示にするか、アイデア2のようにイメージとビデオの数を制限しますが、可能な組み合わせを表す別々のビューアを作成します。 –