Jetpack Compose Academy · Lezione

Chiavi per liste stabili e veloci

Aiuti Compose a tenere traccia degli elementi tra un cambiamento e l'altro.

Lezione 3 di 413 passaggi

Chiavi per liste stabili e veloci è una lezione Jetpack Compose Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Jetpack Compose Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Jetpack Compose Academy include 4 lezioni in totale.

Come Compose tiene traccia delle righe

Per impostazione predefinita, Compose identifica ogni riga in base alla sua posizione nella lista. L'elemento zero è l'elemento zero, l'elemento uno è l'elemento uno, e così via.

La posizione si interrompe quando cambia

Quando inserisce o rimuove una riga, ogni elemento sottostante cambia posizione. Compose pensa quindi che quelle righe siano diverse e le ricostruisce inutilmente.

Il costo della confusione

Le righe ricostruite perdono il proprio stato e le animazioni. Un elemento rimosso può far sfarfallare l'intera lista mentre Compose riorganizza tutto ciò che si trova sotto.

Assegnare una key a ogni elemento

Una key è un valore stabile e univoco che identifica ogni elemento in base alla sua identità, non alla posizione. In questo modo Compose segue gli elementi anche quando si spostano.

items(users, key = { it.id }) { user ->
    Text(user.name)
}

Utilizzare un ID univoco reale

La key migliore è un vero unique id proveniente dai dati, come un ID del database. Rimane invariata indipendentemente dalla posizione dell'elemento.

Le key devono essere univoche

Ogni key nella lista deve essere diversa. Le key duplicate generano un errore a runtime, quindi non utilizzi mai come key un valore che due righe potrebbero condividere.

Non usare l'indice come key

Usare l'index come key vanifica lo scopo, perché gli indici cambiano proprio come le posizioni. Lo utilizzi solo quando non dispone davvero di un ID.

Lo stato rimane con l'elemento

Con key stabili, lo stato memorizzato di una riga la segue. Una casella di controllo rimane selezionata anche dopo l'eliminazione degli elementi sovrastanti.

Le key alimentano le animazioni

Le key stabili consentono a Compose di animare gli elementi mentre si spostano, compaiono o scompaiono. Senza di esse, non può distinguere uno spostamento da una ricostruzione.

items(items, key = { it.id }) { item ->
    Text(item.label, Modifier.animateItem())
}

Anche itemsIndexed accetta le key

Anche il builder itemsIndexed accetta una lambda per la key. Continua a ricevere l'indice, oltre a un'identità stabile per ogni riga.

itemsIndexed(data, key = { _, item -> item.id }) { i, item ->
    Text("$i: ${item.name}")
}

Le key valgono quasi sempre la pena

Per qualsiasi lista che può cambiare, aggiungere le key richiede uno sforzo minimo e offre grandi vantaggi: stato corretto, animazioni fluide e meno ricostruzioni.

Verifica rapida

Che cosa rende valida una key per una lista?

Riepilogo: key stabili, liste stabili

Le key danno agli elementi un'identità che va oltre la posizione. Utilizzi un vero id univoco, mantenga le key univoche e stato e animazioni funzioneranno correttamente. ✨

Gratis per iniziare

Impara Kotlin con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Chiavi per liste stabili e veloci» è gratuita?

Sì — il testo completo di «Chiavi per liste stabili e veloci» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Jetpack Compose Academy, passa a CoddyKit PRO. Il corso Jetpack Compose Academy include 4 lezioni in totale.

Cosa imparerò in «Chiavi per liste stabili e veloci»?

Aiuti Compose a tenere traccia degli elementi tra un cambiamento e l'altro. Eserciti Jetpack Compose Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Jetpack Compose Academy?

Non è richiesta alcuna esperienza precedente. Jetpack Compose Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Chiavi per liste stabili e veloci»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Jetpack Compose Academy?

Sì. Ogni lezione Jetpack Compose Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. LazyColumn e Column scorrevole a confronto
  2. items e itemsIndexed
  3. Chiavi per liste stabili e veloci
  4. Intestazioni fisse e liste per sezioni
← Torna a Jetpack Compose Academy