Sobes.tech
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 pozvano addToBackStack) 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