Junior
Activityda fragmentlarni qanday amalga oshirish mumkin?
sobes.tech AI
AIdan javob
Activity fragmentlarida ularni deklarativ tarzda XMLda yoki FragmentManager yordamida dasturiy tarzda amalga oshirish mumkin.
Deklarativ tarzda (XMLda):
<fragment
android:id="@+id/my_fragment"
android:name="com.example.MyFragment" // Fragment sinfining to'liq nomi
android:layout_width="match_parent"
android:layout_height="match_parent" />
- Fragment Activity yaratilayotganda qo'shiladi.
- Statik maketlar uchun oson.
- Dinamik operatsiyalar uchun kamroq moslashuvchan.
Dasturiy tarzda ( FragmentManager yordamida):
// Activity metodida, masalan, onCreate yoki voqea paytida
val fragmentManager = supportFragmentManager // AppCompatActivity uchun
val fragmentTransaction = fragmentManager.beginTransaction()
// Fragment qo'shish
val myFragment = MyFragment()
fragmentTransaction.add(R.id.fragment_container, myFragment)
// Fragmentni almashtirish (mavjudini o'chiradi va yangi qo'shadi)
// val newFragment = NewFragment()
// fragmentTransaction.replace(R.id.fragment_container, newFragment)
// Fragmentni o'chirish
// val fragmentToRemove = fragmentManager.findFragmentById(R.id.fragment_container)
// agar (fragmentToRemove != null) {
// fragmentTransaction.remove(fragmentToRemove)
// }
// Orqaga qaytish uchun qo'shish (foydalanuvchi "Orqaga" tugmasi bilan oldingi fragmentga qaytishi mumkin)
fragmentTransaction.addToBackStack(null) // Orqa yigin uchun satrli yorliq (null bo'lishi mumkin)
// Transaktsiyani yakunlash
fragmentTransaction.commit() // Asinxron bajarish
// yoki
// fragmentTransaction.commitNow() // Sinkron bajarish
FragmentManagerfragmentlarni boshqarish uchun ishlatiladi.FragmentTransactionoperatsiyalarni bajarish uchun ishlatiladi (qo'shish, o'chirish, almashtirish va boshqalar).- Dinamik UI o'zgarishlari uchun katta moslashuvchanlik ta'minlaydi.
- Orqa yiginni boshqarish uchun foydalanish mumkin.
Konteynerdan foydalanish:
Dasturiy tarzda fragmentlarni qo'shish yoki almashtirish uchun odatda Activity XML dizaynida konteyner ishlatiladi, masalan, FrameLayout yoki LinearLayout:
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Keyin, Activity kodida, fragment bu konteyner ichida qo'shiladi yoki almashtiriladi.
Muhim jihatlar:
- Fragmentning hayot aylanishi Activity hayot aylanishiga yaqin bog'liq.
FragmentManagerfragmentlarning hayot aylanishini va holatini boshqaradi.- Fragment transaktsiyasi atomar tarzda bajariladi (yoki butun operatsiya yoki hech narsa).
- Orqa yiginni ishlatishda
addToBackStack()chaqirilishi shart. supportFragmentManageryordamidaAppCompatActivitybilan fragmentlar bilan ishlash mumkin.