您可以使用含有多個項目類型的清單,顯示混合內容類型,例如文字、圖片和互動式元素。
結果
版本相容性
這項實作作業需要將專案 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是在其他位置定義的contentType,且會對應至AudioMessage可組合函式。 - Compose 會針對指定內容類型的每個項目,重複使用已算繪的可組合函式。
包含本指南的集合
本指南是精選快速指南系列的一部分,涵蓋更廣泛的 Android 開發目標:
顯示清單或格線
清單和格線可讓應用程式以賞心悅目的形式顯示集合,方便使用者瀏覽。
顯示互動式元件
瞭解如何使用可組合函式,根據 Material Design 設計系統輕鬆建立美觀的 UI 元件。
Compose 基本概念 (影片集)
這一系列影片將介紹各種 Compose API,快速展示可用的 API 和使用方式。
如有問題或想提供意見
前往常見問題頁面,瞭解快速指南或與我們聯絡,分享您的想法。