Sobes.tech
Middle

Quelle est la différence entre les méthodes add et replace ?

sobes.tech IA

Réponse de l'IA

La différence entre les méthodes add et replace lors de la gestion des fragments est la suivante :

  • add : Ajoute un nouveau fragment par-dessus les existants. Les fragments précédents restent dans la pile (si addToBackStack a été appelé) et leur cycle de vie est suspendu (ils passent à l'état PAUSED).
  • replace : Supprime le fragment précédent du conteneur et en ajoute un nouveau à sa place. Si le fragment précédent était dans la pile, il sera recréé lors du retour.

Exemple d'utilisation de add :

supportFragmentManager.beginTransaction()
    .add(R.id.fragment_container, NewFragment())
    .addToBackStack(null)
    .commit()

Exemple d'utilisation de replace :

supportFragmentManager.beginTransaction()
    .replace(R.id.fragment_container, NewFragment())
    .addToBackStack(null)
    .commit()

Les principales différences peuvent être résumées dans le tableau suivant :

Caractéristique add replace
Visibilité Le nouveau fragment se superpose Le nouveau fragment remplace l'ancien
État du précédent Suspendu (PAUSED) Supprimé du conteneur, recréé lors du retour
Pile de retour Le fragment précédent reste dans la pile Le fragment précédent est supprimé du conteneur, mais peut être dans la pile
Performance Peut être moins performant avec beaucoup de fragments Généralement plus performant lors de changements fréquents de fragments