複数のアイテムタイプを含むリストを使用すると、テキスト、画像、インタラクティブな要素など、さまざまなコンテンツ タイプを表示できます。
バージョンの互換性
この実装では、プロジェクトの minSDK を API レベル 21 以上に設定する必要があります。
依存関係
複数のアイテムタイプを追加する
複数のタイプのアイテムを含むリストまたはグリッドをコンポーズする場合は、レイアウトのアイテムごとにコンテンツ タイプを指定できます。
@Composable fun ListWithMultipleItems(messages: List<Any>) { LazyColumn { items( messages.size, contentType = { it } ) { for (message in messages) when (message) { is MediaStore.Audio -> AudioMessage(message) is Text -> TextMessage(message) } } } } @Composable fun AudioMessage(message: MediaStore.Audio) { TODO("Not yet implemented.") } @Composable fun TextMessage(message: Text) { TODO("Not yet implemented.") } data class SampleMessage(val text: String, val content: Any)
コードに関する主なポイント
items()
でcontentType
を設定して、各アイテムのコンテンツ タイプを指定します。- 各コンテンツ タイプを対応するコンポーザブルにマッピングします。たとえば、
Audio
は、他の場所で定義され、AudioMessage
コンポーザブルにマッピングされたcontentType
です。 - Compose は、特定のコンテンツ タイプの各アイテムに対してレンダリングされたコンポーザブルを再利用します。
結果

このガイドを含むコレクション
このガイドは、Android 開発の幅広い目標を網羅する、厳選されたクイックガイド コレクションの一部です。

リストまたはグリッドを表示する
リストとグリッドを使用すると、アプリでコレクションを視覚的に魅力的でユーザーが使いやすい形式で表示できます。

インタラクティブなコンポーネントを表示する
コンポーズ可能な関数を使用して、マテリアル デザインのデザイン システムに基づいて美しい UI コンポーネントを簡単に作成する方法を学びます。

Compose の基本(動画コレクション)
この動画シリーズでは、さまざまな Compose API を紹介し、利用可能な API とその使用方法を簡単に説明します。
ご質問やフィードバックがある場合
よくある質問のページでクイックガイドをご覧になるか、お問い合わせフォームからご意見をお寄せください。