Crea una lista con varios tipos de elementos

Puedes usar una lista con varios tipos de elementos para mostrar tipos de contenido mixto, como texto, imágenes y elementos interactivos.

Resultados

Salida de código que muestra mensajes de audio y texto
Figura 1. Salida de código que muestra mensajes de audio y texto.

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 contentType en items().
  • Asigna cada tipo de contenido a un elemento componible correspondiente. Por ejemplo, Audio es un contentType que se define en otro lugar y se asigna a un elemento AudioMessage componible.
  • 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:

Las listas y las cuadrículas permiten que tu app muestre colecciones de una forma visualmente atractiva y fácil de usar para los usuarios.
Aprende cómo las funciones de componibilidad te permiten crear fácilmente componentes de IU atractivos basados en el sistema de diseño de Material Design.
En esta serie de videos, se presentan varias APIs de Compose y se muestra rápidamente qué hay disponible y cómo usarlas.

Preguntas o comentarios

Visita nuestra página de preguntas frecuentes y consulta las guías rápidas, o bien comunícate con nosotros y comparte tu opinión.