🧩 Exercícios - Cap 10: Inventário e Pokedex (LazyColumn)

📖 Ver Cap 10

🎯 Antes de começar

No Cap 10 você criou a ListaPokedex() usando LazyColumn + items(pokemons) { pokemon -> ... }, e nas Práticas Obrigatórias montou meusItens (lista de 10 itens) e estilizou cada linha com Card. Depois de completar as duas Práticas, faça o exercício extra abaixo para conhecer itemsIndexed, que entrega também a posição de cada item.


💪 Exercício Extra 1: Numerando a Lista com itemsIndexed (15 min)

Objetivo: Praticar itemsIndexed, que entrega o índice (posição) junto com cada item da lista.

Passos:

  1. No arquivo da sua Pokedex, adicione o import:
    import androidx.compose.foundation.lazy.itemsIndexed
    
  2. Troque o items(pokemons) { pokemon -> ... } por:
    LazyColumn {
        itemsIndexed(pokemons) { indice, pokemon ->
            Text(
                text = "${indice + 1}. 👾 $pokemon",
                modifier = Modifier.padding(16.dp).fillMaxWidth(),
                fontSize = 20.sp
            )
        }
    }
    
  3. Rode na Preview/emulador e role a lista.

✅ Resultado Esperado


🆘 Resolução de Problemas Comuns

Erro Causa Solução
Unresolved reference: itemsIndexed Faltou o import androidx.compose.foundation.lazy.itemsIndexed Adicione o import no topo do arquivo (ou use Alt+Enter para o Android Studio sugerir)
A lista começa em "0. 👾 Pikachu" Esqueceu o + 1 ao montar o texto — indice começa em 0 Use ${indice + 1} para a numeração começar em 1
Erro expecting lambda parameters ou ordem trocada A ordem dos parâmetros do itemsIndexed é (indice, item), nessa ordem Confirme itemsIndexed(pokemons) { indice, pokemon -> ... } — índice primeiro, item depois

⬅️ Voltar para Exercícios