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
FragmentManagerfraqmentlə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.
FragmentManagerfraqmentlə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. supportFragmentManageristifadə edilərəkAppCompatActivityilə fraqmentlərlə işləmək mümkündür.