Sobes.tech
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
  • FragmentManager fragmentlarni boshqarish uchun ishlatiladi.
  • FragmentTransaction operatsiyalarni 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.
  • FragmentManager fragmentlarning hayot aylanishini va holatini boshqaradi.
  • Fragment transaktsiyasi atomar tarzda bajariladi (yoki butun operatsiya yoki hech narsa).
  • Orqa yiginni ishlatishda addToBackStack() chaqirilishi shart.
  • supportFragmentManager yordamida AppCompatActivity bilan fragmentlar bilan ishlash mumkin.