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) |
Контейнерден алынып салынат, кайтып келгенде кайра түзүлөт |
| Кайтуу стек | Эски фрагмент стекке калат | Эски фрагмент контейнерден алынып салынат, бирок стекке кире алат |
| Өндүрүмдүүлүк | Көп фрагменттер менен аз эффективдүү болушу мүмкүн | Жыш өзгөрүүлөрдө көбүрөөк эффективдүү |