Sobes.tech
Junior

Activity-də fraqmentləri necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Activity fraqmentlərində bunlar XML-də deklarativ və ya FragmentManager istifadə edilərək proqramlı şəkildə həyata keçirilə bilər.

Deklarativ (XML-də):

<fragment
    android:id="@+id/my_fragment"
    android:name="com.example.MyFragment" // Fraqmentin tam sinf adı
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
  • Fraqment Activity yaradılarkən əlavə olunur.
  • Statik düzənlər üçün asandır.
  • Dinamik əməliyyatlar üçün daha az elastik.

Proqramlı ( FragmentManager ilə):

// Activity metodunda, məsələn, onCreate və ya hadisə zamanı
val fragmentManager = supportFragmentManager // AppCompatActivity üçün
val fragmentTransaction = fragmentManager.beginTransaction()

// Fraqment əlavə et
val myFragment = MyFragment()
fragmentTransaction.add(R.id.fragment_container, myFragment)

// Fraqmenti dəyişdir (mövcud olanı silir və yenisini əlavə edir)
// val newFragment = NewFragment()
// fragmentTransaction.replace(R.id.fragment_container, newFragment)

// Fraqmenti sil
// val fragmentToRemove = fragmentManager.findFragmentById(R.id.fragment_container)
// if (fragmentToRemove != null) {
//     fragmentTransaction.remove(fragmentToRemove)
// }

// Geri Dönüş Yığınına əlavə et (istifadəçi "Geri" düyməsi ilə əvvəlki fraqmentə qayıda bilər)
fragmentTransaction.addToBackStack(null) // Geri yığın üçün etiket sətiri (null ola bilər)

// Əməliyyatı tamamla
fragmentTransaction.commit() // Asinxron icra
// və ya
// fragmentTransaction.commitNow() // Sinxron icra
  • FragmentManager fraqmentləri idarə etmək üçün istifadə olunur.
  • FragmentTransaction əməliyyatları həyata keçirmək üçün istifadə olunur (əlavə etmək, silmək, dəyişdirmək və s.).
  • Dinamik UI dəyişiklikləri üçün daha çox elastiklik təmin edir.
  • Geri yığını idarə etmək üçün istifadə edilə bilər.

Konteynerin istifadəsi:

Proqramlı olaraq fraqmentləri əlavə etmək və ya dəyişdirmək üçün adətən Activity-nin XML düzənində konteyner istifadə olunur, məsələn, FrameLayout və ya LinearLayout:

<FrameLayout
    android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

Sonra, Activity kodunda, fraqment bu konteyner daxilində əlavə və ya dəyişdirilir.

Vacib aspektlər:

  • Fraqmentin həyat dövrü Activity-nin həyat dövrü ilə sıx bağlıdır.
  • FragmentManager fraqmentlərin həyat dövrünü və vəziyyətini idarə edir.
  • Fraqment əməliyyatı atomar şəkildə həyata keçirilir (və ya bütün əməliyyat, və ya heç biri).
  • Geri yığın istifadə edilərkən addToBackStack() çağırılmalıdır.
  • supportFragmentManager istifadə edilərək AppCompatActivity ilə fraqmentlərlə işləmək mümkündür.