您可以使用包含多种项类型的列表来显示混合内容类型,例如文本、图片和互动元素。
结果
版本兼容性
此实现要求您的项目 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 设计
系统的精美界面组件。
Compose 基础知识(视频集合)
此系列视频介绍了各种 Compose API,
可让您快速了解可用的 API 及其使用方法。
有疑问或反馈吗?
前往我们的常见问题解答页面,了解有关快速指南的信息;或者联系我们并告知您的想法。