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 azaddToBackStack-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 |