Listas com LazyColumn
Exiba listas roláveis com eficiência.
Listas com LazyColumn é uma aula grátis de Android Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Android Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Android Academy inclui 4 aulas no total.
Por que não usar apenas uma Column?
Uma Column compõe todos os seus elementos filhos de uma só vez. Em uma lista longa ou rolável, isso desperdiça memória e deixa a interface mais lenta. Você precisa de uma lista que crie apenas os itens visíveis.
Conheça a LazyColumn
LazyColumn é uma lista vertical rolável que compõe apenas os itens que estão na tela — como a antiga RecyclerView, mas de forma muito mais simples.
LazyColumn {
items(messages) { msg ->
Text(text = msg)
}
}A função items()
Dentro da lambda da LazyColumn, você chama items(list) e fornece um composable para cada elemento. O Compose o chama de forma preguiçosa à medida que o usuário rola a lista.
LazyColumn {
items(users) { user ->
Text(text = user.name)
}
}Não é um loop comum
Não use um loop for comum dentro de LazyColumn — isso elimina a criação preguiçosa. Sempre use items() (ou itemsIndexed()) para que o Compose possa criar os itens conforme necessário.
Um único item de cabeçalho
Use item { } (no singular) para adicionar um elemento fixo, como um cabeçalho, antes dos itens do loop.
LazyColumn {
item { Text("Header") }
items(data) { Text(it) }
}itemsIndexed
Quando precisar da posição, use itemsIndexed para obter o índice e o elemento.
LazyColumn {
itemsIndexed(data) { index, value ->
Text(text = "$index: $value")
}
}Chaves para estabilidade
Forneça uma key estável para cada item para que o Compose possa acompanhar os itens corretamente quando a lista mudar — melhorando o desempenho e as animações.
items(users, key = { it.id }) { user ->
Text(user.name)
}Espaçando os itens
LazyColumn aceita verticalArrangement e contentPadding para espaçar os itens e adicionar preenchimento às bordas da lista.
LazyColumn(
verticalArrangement = Arrangement.spacedBy(8.dp),
contentPadding = PaddingValues(16.dp)
) {
items(data) { Text(it) }
}LazyRow
Também existe a LazyRow para listas com rolagem horizontal — a mesma API, mas em outra direção. É ótima para carrosséis de cartões.
LazyRow {
items(images) { img ->
Image(painter = img, contentDescription = null)
}
}Rolagem integrada
Você não adiciona um modificador de rolagem a uma LazyColumn — ela rola automaticamente. Adicionar verticalScroll causaria conflito e uma falha. As listas Lazy gerenciam a própria rolagem.
Juntando tudo
Uma lista de itens com cabeçalho, chaves e espaçamento.
@Composable
fun MessageList(messages: List<Message>) {
LazyColumn(
verticalArrangement = Arrangement.spacedBy(8.dp)
) {
item { Text("Inbox") }
items(messages, key = { it.id }) { msg ->
Text(text = msg.text)
}
}
}Verificação rápida
Qual é a principal vantagem de LazyColumn em relação a uma Column rolável?
Recapitulação
LazyColumn:
- Cria apenas os itens visíveis — é eficiente para listas longas.
- Use
items()/itemsIndexed(), não um loopfor. - Adicione uma
keypara obter estabilidade; useitem { }para cabeçalhos. - Rola automaticamente — não precisa de modificador de rolagem.
LazyRowé a versão horizontal.
Aprenda Kotlin com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 36
- Aulas
- 152
Perguntas Frequentes
A aula “Listas com LazyColumn” é grátis?
Sim — o texto completo de “Listas com LazyColumn” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Android Academy, atualize para CoddyKit PRO. O curso de Android Academy inclui 4 aulas no total.
O que vou aprender em “Listas com LazyColumn”?
Exiba listas roláveis com eficiência. Você pratica Android Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Android Academy?
Nenhuma experiência prévia é necessária. Android Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Listas com LazyColumn”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Android Academy?
Sim. Cada aula de Android Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Column, Row e Box
- O sistema Modifier
- Alinhamento e organização
- Listas com LazyColumn