É possível usar uma lista com vários tipos de itens para mostrar tipos de conteúdo mistos, como texto, imagens e elementos interativos.
Resultados
Compatibilidade de versões
Essa implementação exige que o minSDK do projeto seja definido como nível da API 21 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
contentTypeemitems(). - Mapeia cada tipo de conteúdo para um elemento combinável correspondente. Por exemplo,
Audioé umcontentTypedefinido em outro lugar e mapeado para um elemento combinávelAudioMessage. - O Compose reutiliza os elementos combináveis renderizados para cada item de um determinado tipo de conteúdo.
Coleções que contêm este guia
Este guia faz parte das coleções de guias rápidos selecionados que abordam objetivos mais amplos de desenvolvimento para Android:
Mostrar uma lista ou grade
Com listas e grades, seu app pode mostrar coleções de uma forma visualmente agradável e fácil de consumir para os usuários.
Mostrar componentes interativos
Aprenda como as funções combináveis podem permitir que você crie facilmente
componentes de interface bonitos com base no sistema de design do
Material Design.
Conceitos básicos 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 usar.
Tem dúvidas ou quer dar feedback?
Acesse nossa página de perguntas frequentes e confira guias rápidos ou entre em contato para compartilhar sua opinião.