您可以使用包含多种项类型的列表来显示混合内容类型,例如文本、图片和互动元素。
版本兼容性
此实现要求将项目 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 会针对给定内容类型的每个项重复使用已呈现的可组合项。
结果
![显示音频和文本消息的代码输出](https://developer.android.google.cn/static/quick-guides/content/multiple-item-types.png?hl=zh-cn)
包含本指南的集合
本指南属于以下精选快速入门集合,这些集合涵盖了更广泛的 Android 开发目标:
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=zh-cn)
显示列表或网格
借助列表和网格,您的应用可以以视觉上令人愉悦且易于用户使用的形式显示集合。
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=zh-cn)
显示互动组件
了解如何使用可组合函数根据 Material Design 设计系统轻松创建美观的界面组件。
![](https://developer.android.google.cn/static/images/quick-guides/collection-illustration.png?hl=zh-cn)
Compose 基础知识(视频合集)
本系列视频介绍了各种 Compose API,可让您快速了解可用 API 以及如何使用它们。
有问题或反馈
请访问我们的常见问题解答页面,了解简短指南,或与我们联系,告诉我们您的想法。