Sobes.tech
Middle

Методҳои add ва replace чӣ фарқ доранд?

sobes.tech AI

Ҷавоб аз AI

Фрагменттер менен иштөөдө add жана replace ыкмаларынын ортосундагы айырмачылык төмөндөгүчө:

  • add: Жаңы фрагментти барганга үстүнө кошот. Эски фрагменттер стекке калат (эгер addToBackStack чакырылса) жана алардын жашоо цикли токтотулат (PAUSED).
  • replace: Эски фрагментти контейнерден алып салат жана анын ордуна жаңы фрагмент кошот. Эгер эски фрагмент стекке кирсе, кайра кайтып келгенде кайра түзүлөт.

add колдонуу мисалы:

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

replace колдонуу мисалы:

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

Негизги айырмачылыктар төмөнкү таблицада кыскача көрсөтүлгөн:

Өзгөчөлүк add replace
Көрүнүшү Жаңы фрагмент эскинин үстүнө чыгат Жаңы фрагмент эскинин ордун алат
Эскинин абалы Токтотулат (PAUSED) Контейнерден алынып салынат, кайтып келгенде кайра түзүлөт
Кайтуу стек Эски фрагмент стекке калат Эски фрагмент контейнерден алынып салынат, бирок стекке кире алат
Өндүрүмдүүлүк Көп фрагменттер менен аз эффективдүү болушу мүмкүн Жыш өзгөрүүлөрдө көбүрөөк эффективдүү