Sobes.tech
Middle

Worin unterscheiden sich die Methoden add und replace?

sobes.tech KI

Antwort von AI

Der Unterschied zwischen den Methoden add und replace bei der Arbeit mit Fragmenten ist folgender:

  • add: Fügt ein neues Fragment über die bestehenden hinzu. Die vorherigen Fragmente bleiben im Backstack (wenn addToBackStack aufgerufen wurde) und ihr Lebenszyklus wird pausiert (PAUSED).
  • replace: Entfernt das vorherige Fragment aus dem Container und fügt ein neues an seiner Stelle hinzu. Wenn das vorherige Fragment im Backstack war, wird es beim Zurückkehren neu erstellt.

Beispiel für die Verwendung von add:

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

Beispiel für die Verwendung von replace:

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

Die wichtigsten Unterschiede lassen sich in der folgenden Tabelle zusammenfassen:

Merkmal add replace
Sichtbarkeit Das neue Fragment überlagert das alte Das neue Fragment ersetzt das alte
Zustand des vorherigen Wird pausiert (PAUSED) Wird aus dem Container entfernt, beim Zurückkehren neu erstellt
Backstack Das vorherige Fragment bleibt im Backstack Das vorherige Fragment wird aus dem Container entfernt, kann aber im Backstack sein
Leistung Kann bei vielen Fragmenten weniger performant sein In der Regel bei häufigen Fragmentwechseln leistungsfähiger