Criar uma lista usando vários tipos de itens

É possível usar uma lista com vários tipos de itens para mostrar tipos de conteúdo mistos, como texto, imagens e elementos interativos.

Compatibilidade de versões

Essa implementação exige que o minSDK do projeto seja definido como nível 21 da API ou mais recente.

Dependências

Adicionar vários tipos de itens

É possível especificar o tipo de conteúdo de cada item do layout ao criar uma lista ou grade com vários tipos de itens:

@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)

Pontos principais sobre o código

  • Especifica o tipo de conteúdo de cada item definindo contentType em items().
  • Mapeia cada tipo de conteúdo para um elemento combinável correspondente. Por exemplo, Audio é uma contentType definida em outro lugar e mapeada para um elemento combinável AudioMessage.
  • O Compose reutiliza os elementos combináveis renderizados para cada item de um determinado tipo de conteúdo.

Resultados

Saída de código mostrando mensagens de áudio e texto
Figura 1. Saída de código mostrando mensagens de áudio e texto.

Coleções que contêm este guia

Este guia faz parte destas coleções selecionadas de guias rápidos que abrangem metas mais amplas de desenvolvimento para Android:

As listas e as grades permitem que o app exiba coleções de uma forma agradável e fácil de consumir.
Aprenda como as funções combináveis podem permitir que você crie componentes de interface bonitos com base no sistema de design do Material Design.
Esta série de vídeos apresenta várias APIs do Compose, mostrando rapidamente o que está disponível e como usá-las.

Tem dúvidas ou feedback?

Acesse a página de perguntas frequentes e saiba mais sobre os guias rápidos ou entre em contato e conte o que você pensa.