Puedes usar una lista con varios tipos de elementos para mostrar tipos de contenido mixto, como texto, imágenes y elementos interactivos.
Resultados
Compatibilidad de versiones
Esta implementación requiere que el minSDK de tu proyecto se establezca en el nivel de API 21 o superior.
Dependencias
Cómo agregar varios tipos de elementos
Puedes especificar el tipo de contenido de cada elemento del diseño cuando compones una lista o una cuadrícula con varios tipos de elementos:
@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)
Puntos clave sobre el código
- Especifica el tipo de contenido de cada elemento configurando
contentTypeenitems(). - Asigna cada tipo de contenido a un elemento componible correspondiente. Por ejemplo,
Audioes uncontentTypeque se define en otro lugar y se asigna a un elementoAudioMessagecomponible. - Compose reutiliza los elementos componibles renderizados para cada elemento de un tipo de contenido determinado.
Colecciones que contienen esta guía
Esta guía forma parte de las colecciones seleccionadas de Guías rápidas que abarcan objetivos más amplios del desarrollo para Android:
Cómo mostrar una lista o cuadrícula
Mostrar componentes interactivos