2.2 KiB
2.2 KiB
Ne pas recharger inutilement l'ensemble du contenu d'une liste si seulement une partie a changé
Identifiants
// TODO
Catégories
Cycle de vie | Tiers | Responsable |
---|---|---|
3. Réalisation (fabrication / développement) | Réseau | UX/UI Designer |
Indications
Degré de priorité | Mise en oeuvre | Impact écologique |
---|---|---|
4 | 4 | 5 |
Ressources Economisées |
---|
Processeur / Réseau |
Description
Si une liste qui est affichée à l'écran peut subir des modifications dans le temps, il existe des solutions permettant d'indiquer au système Android de recharger uniquement les éléments de cette liste qui ont changé, plutôt que de recharger l'ensemble de la liste.
Avec le UI Toolkit original, deux solutions sont possibles :
- Si nous connaissons la position des éléments modifiés, la classe
RecyclerView.Adapter
fournie les fonctions suivantes :
notifyItemChanged(int)
notifyItemInserted(int)
notifyItemRemoved(int)
notifyItemRangeChanged(int, int)
notifyItemRangeInserted(int, int)
notifyItemRangeRemoved(int, int)
A contrario, il faut éviter d'utiliser la fonction notifyDataSetChanged()
qui va forcer le rechargement complet de la liste.
- Si le code pour déterminer la position des éléments à modifier est complexe,
ListAdapter
intègre directement un mécanisme calculant la différence entre deux listes viaDiffUtil
pour ne modifier que les éléments concernés.
Exemple
- Article expliquant la mise en place de
ListAdapter
Principe de validation
Le nombre ... | est inférieur ou égal à |
---|---|
d'écran utilisant la fonction notifyDataSetChanged pour recharger les données d'une liste |
0% |