É 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
emitems()
. - Mapeia cada tipo de conteúdo para um elemento combinável correspondente. Por exemplo,
Audio
é umacontentType
definida em outro lugar e mapeada para um elemento combinávelAudioMessage
. - O Compose reutiliza os elementos combináveis renderizados para cada item de um determinado tipo de conteúdo.
Resultados

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:

Mostrar uma lista ou grade
As listas e as grades permitem que o app exiba coleções de uma
forma agradável e fácil de consumir.

Mostrar componentes interativos
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.

Noções básicas do Compose (coleção de vídeos)
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.