Sobes.tech
Middle

Kuidas erinevad meetodid add ja replace?

sobes.tech AI

Vastus AI-lt

Erinevus add ja replace meetodite vahel fragmentidega töötamisel saab kokku võtta järgmiselt:

  • add: Lisab uue fragmendi olemasolevate peale. Eelnevad fragmentid jäävad taustsüsteemi (kui kutsuti addToBackStack) ning nende elutsükkel peatub (nad lähevad olekusse PAUSED).
  • replace: Eemaldab eelneva fragma konteinerist ja lisab uue asemele. Kui eelmine fragment oli taustsüsteemis, siis naasmisel luuakse see uuesti.

Näide add kasutamisest:

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

Näide replace kasutamisest:

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

Peamised erinevused on kokkuvõtvalt tabelis:

Omadus add replace
Nähtavus Uus fragment paigutub olemasolevale peal Uus fragment asendab eelneva
Eelneva f. seisund Peatub (PAUSED) Eemaldatakse konteinerist, naasmisel luuakse uuesti
Taustsüsteem Eelmine fragment jääb taustsüsteemi Eelmine fragment eemaldatakse konteinerist, kuid võib olla taustsüsteemis
Tõhusus Võib olla vähem tõhus suure fragmentide arvuga Tavaliselt tõhusam sagedaste vahetustega fragmentide puhul