Android Academy · Aula

Listas com LazyColumn

Exiba listas roláveis com eficiência.

Aula 4 de 413 etapas

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 loop for.
  • Adicione uma key para obter estabilidade; use item { } para cabeçalhos.
  • Rola automaticamente — não precisa de modificador de rolagem. LazyRow é a versão horizontal.
Grátis para começar

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

  1. Column, Row e Box
  2. O sistema Modifier
  3. Alinhamento e organização
  4. Listas com LazyColumn
← Voltar para Android Academy