Sobes.tech
Middle

Mi a különbség az add és a replace módszerek között?

sobes.tech MI

Válasz az MI-től

A add és replace módszerek közötti különbség a fragmentumok kezelésében a következő:

  • add: Új fragmentumot ad hozzá a meglévők fölé. A korábbi fragmentumok a veremben maradnak (ha az addToBackStack-et meghívták), és életciklusuk szünetel (PAUSED állapotba kerülnek).
  • replace: Törli a korábbi fragmentumot a konténerből, és újat ad hozzá a helyére. Ha a korábbi fragment a veremben volt, akkor visszatéréskor újra létrejön.

add használatának példája:

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

replace használatának példája:

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

A fő különbségek az alábbi táblázatban összefoglalhatók:

Jellemző add replace
Láthatóság Az új fragmentum rátesz a régire Az új fragmentum helyettesíti a régit
Előző állapot Szünetel (PAUSED) Eltávolítva a konténerből, visszatéréskor újra létrejön
Visszalépés Az előző fragmentum a veremben marad Az előző fragmentum eltávolításra kerül, de lehet a veremben
Teljesítmény Kevesebb lehet több fragmentummal Általában hatékonyabb gyakori változtatásoknál