Middle
Čime se razlikuju metode add i replace?
sobes.tech АИ
Одговор од АИ
Razlika između metoda add i replace pri radu sa fragmentima je sledeća:
add: Dodaje novi fragment preko postojećih. Prethodni fragmenti ostaju u steku (ako je pozvanoaddToBackStack) i njihov životni ciklus se zaustavlja (PAUSED).replace: Uklanja prethodni fragment iz kontejnera i dodaje novi na njegovo mesto. Ako je prethodni fragment bio u steku, biće ponovo kreiran pri povratku.
Primer korišćenja add:
supportFragmentManager.beginTransaction()
.add(R.id.fragment_container, NewFragment())
.addToBackStack(null)
.commit()
Primer korišćenja replace:
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_container, NewFragment())
.addToBackStack(null)
.commit()
Glavne razlike mogu biti sumirane u tabeli:
| Osobina | add | replace |
|---|---|---|
| Vidljivost | Novi fragment se preklapa sa starim | Novi fragment zamenjuje stari |
| Stanje prethodnog | Se pauzira (PAUSED) |
Se uklanja iz kontejnera, pri povratku se ponovo kreira |
| Backstack | Prethodni fragment ostaje u steku | Prethodni fragment se uklanja iz kontejnera, ali može biti u steku |
| Performanse | Može biti manje efikasno sa mnogo fragmenta | Obično efikasnije pri čestim promenama fragmenta |