Clés pour des listes stables et rapides
Aidez Compose à suivre les éléments lors des changements.
Clés pour des listes stables et rapides est une leçon Jetpack Compose Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Jetpack Compose Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Jetpack Compose Academy comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
How Compose Tracks Rows
By default, Compose identifies each row by its position in the list. Item zero is item zero, item one is item one, and so on.
Position Breaks on Change
When you insert or remove a row, every item below shifts position. Compose now thinks those rows are different and rebuilds them needlessly.
The Cost of Confusion
Rebuilt rows lose their state and animations. A removed item can make the whole list flicker as Compose reshuffles everything below it.
Give Each Item a Key
A key is a stable, unique value that names each item by identity, not position. Then Compose follows items even as they move.
items(users, key = { it.id }) { user ->
Text(user.name)
}Use a Real Unique ID
The best key is a true unique id from your data, like a database id. It stays the same no matter where the item sits.
Keys Must Be Unique
Every key in the list must be different. Duplicate keys throw a runtime error, so never key items by a value two rows might share.
Don't Key by Index
Using the index as a key defeats the purpose, since indexes shift just like position. Reach for it only when you truly have no id.
State Stays With the Item
With stable keys, a row's remembered state travels with it. A checkbox stays checked even after items above it are deleted.
Keys Power Animations
Stable keys let Compose animate items moving, appearing, or leaving. Without them, it can't tell a move from a rebuild.
items(items, key = { it.id }) { item ->
Text(item.label, Modifier.animateItem())
}itemsIndexed Takes Keys Too
The itemsIndexed builder also accepts a key lambda. You still get the index, plus stable identity for every row.
itemsIndexed(data, key = { _, item -> item.id }) { i, item ->
Text("$i: ${item.name}")
}Keys Are Almost Always Worth It
For any list that can change, adding keys is a tiny effort with a big payoff: correct state, smooth animations, and fewer rebuilds.
Quick Check
What makes a good list key?
Recap: Stable Keys, Stable Lists
Keys give items identity beyond position. Use a real unique id, keep keys unique, and your state and animations just work. ✨
Questions Fréquemment Posées
La leçon « Clés pour des listes stables et rapides » est-elle gratuite ?
Oui — le texte complet de « Clés pour des listes stables et rapides » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Jetpack Compose Academy, passe à CoddyKit PRO. Le cours Jetpack Compose Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Clés pour des listes stables et rapides » ?
Aidez Compose à suivre les éléments lors des changements. Tu pratiques Jetpack Compose Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Jetpack Compose Academy ?
Aucune expérience préalable n'est requise. Jetpack Compose Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Clés pour des listes stables et rapides » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Jetpack Compose Academy ?
Oui. Chaque leçon Jetpack Compose Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- LazyColumn ou colonne déroulable
- items et itemsIndexed
- Clés pour des listes stables et rapides
- En-têtes persistants et listes par sections