Junior
Bir Activity'de fragmentler nasıl uygulanabilir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Activity fragmentlerinde, bunlar XML'de deklaratif olarak veya FragmentManager kullanılarak programatik olarak uygulanabilir.
Deklaratif (XML'de):
<fragment
android:id="@+id/my_fragment"
android:name="com.example.MyFragment" // Fragmentin tam sınıf adı
android:layout_width="match_parent"
android:layout_height="match_parent" />
- Fragment, Activity oluşturulurken eklenir.
- Statik düzenler için kolaydır.
- Dinamik işlemler için daha az esnektir.
Programatik ( FragmentManager ile):
// Activity içindeki bir metodun içinde, örneğin onCreate veya bir olay sırasında
val fragmentManager = supportFragmentManager // AppCompatActivity için
val fragmentTransaction = fragmentManager.beginTransaction()
// Bir fragment ekle
val myFragment = MyFragment()
fragmentTransaction.add(R.id.fragment_container, myFragment)
// Bir fragmenti değiştir (mevcut olanı kaldırır ve yenisini ekler)
// val newFragment = NewFragment()
// fragmentTransaction.replace(R.id.fragment_container, newFragment)
// Bir fragmenti kaldır
// val fragmentToRemove = fragmentManager.findFragmentById(R.id.fragment_container)
// if (fragmentToRemove != null) {
// fragmentTransaction.remove(fragmentToRemove)
// }
// Geri Dönüş Yığınına ekle (kullanıcı "Geri" düğmesine basarak önceki fragmente dönebilir)
fragmentTransaction.addToBackStack(null) // Geri dönüş yığını etiketi (null olabilir)
// İşlemi tamamla
fragmentTransaction.commit() // Asenkron yürütme
// veya
// fragmentTransaction.commitNow() // Senkron yürütme
FragmentManager, fragmentleri yönetmek için kullanılır.FragmentTransaction, işlemleri gerçekleştirmek için kullanılır (ekleme, kaldırma, değiştirme vb.).- Dinamik UI değişiklikleri için daha fazla esneklik sağlar.
- Geri Dönüş Yığını yönetilebilir.
Kapsayıcı kullanımı:
Programatik olarak fragment ekleme veya değiştirme için genellikle Activity'nin XML düzeninde bir kapsayıcı kullanılır, örneğin FrameLayout veya LinearLayout:
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Daha sonra, Activity kodunda, fragment bu kapsayıcı içinde eklenir veya değiştirilir.
Önemli noktalar:
- Fragment'in yaşam döngüsü, Activity'nin yaşam döngüsüyle yakından ilişkilidir.
FragmentManager, fragmentlerin yaşam döngüsünü ve durumunu yönetir.- Fragment işlemleri atomik olarak gerçekleştirilir (ya tüm işlem ya da hiçbiri).
- Geri Dönüş Yığını kullanılırken
addToBackStack()çağrılmalıdır. supportFragmentManagerkullanılarakAppCompatActivity'de fragmentlerle çalışılır.