Chiavi per liste stabili e veloci
Aiuti Compose a tenere traccia degli elementi tra un cambiamento e l'altro.
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. ✨
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
- LazyColumn e Column scorrevole a confronto
- items e itemsIndexed
- Chiavi per liste stabili e veloci
- Intestazioni fisse e liste per sezioni