Fragment’lar Android API 11(3.0) ile birlikte androide dahil oldu. Ana görevi Activity gibi arayüzleri oluşturmak, görünüm sağlamak olan Fragment’leri Activity’den ayıran fark ise bir Activity içerisinde birden fazla Fragment çağrılabilmesidir. Tabii ki tek fark bu değil. Bu farklara tek tek bakıp Fragment’in neden geliştirildiğini ve ona neden ihtiyaç duyduğumuzu öğreneceğiz.
Konu Başlıkları
Activity Lifecycle yazım için burayı ziyaret edebilirsiniz.
Fragment Nedir?
Fragment, Activity’e göre daha performanslı, pratik ve kullanışlıdır. Bir Activity içerisinde birden fazla Fragment kullanabileceğiniz gibi aynı Fragment’i başka bir Activity içerisinde de çağırabilirsiniz. Günlük hayatta kullandığımız sosyal medya, banka uygulamaları ve diğer uygulamalarda gördüğümüz ekranların birçoğu Fragment kullanılarak yapılmıştır. Fragment sadece performans sağlamakla kalmaz aynı zamanda görünümü tekrar tekrar kullanmamızı sağlayarak zamandan da tasarruf etmemizi sağlar.
Bu durumdan yola çıkarak Fragment Activity’nin gövdesi diyebiliriz. Activity de değişiklik yapmadan Fragment değişiklikleri ile farklı ekranları kullanıcıya gösterebilirsiniz. Bu sayede daha performanslı bir uygulamaya sahip olursunuz.
Özetlemek gerekirse…
- Activity’den daha performanslı
- Tekrar tekrar kullanılabilen
- Kendisine ait bir lifecycle’a sahip
- Activity’lere bağlı bir yapıdır fragment.
Lifecycle
En önemli nokta Activity yaşamı Fragment yaşamını doğrudan etkiler.
onAttach()
Bu metod ilk olarak Fragment Activity’e eklendiğinde çağrılır. onCreate’ten bile önce çalışarak Fragment’in bir Activity’e eklendiğini bildirir.
onCreate()
Bu metod Fragment oluşturulduğunda çağrılır. Ama bu metod’da view ile alakalı işlemler yapmayı denersek hata alırız. Çünkü kullanıcı arayüzü henüz çizilmemiştir.
onCreateView()
Bu metod layout inflate edildiği metod’dur. Kullanıcı arayüzü çizildiği için view ile alakalı işlemleri burada ve buradan sonra yapabiliriz(onCreate’te belirttiğim hataya istinaden). Bir görünüm oluşturulduğu geri dönüşlü bir fonksiyondur ve dönüş tipi View’dir.
onViewCreated()
Bu metod görünümün oluşturulduğunu bildirir.
onActivityCreated()
Bu metod çağrıldığında Fragmenti ayakta tutan Activity’nin onCreate metodunun tamamlandığını bildirir. Bu metod çağrıldığında Activity’de oluşturulmuştur.
onStart()
Fragment görünümü ekrana geldiğinde çağrılır.
onResume()
Bu metod onStart() metodundan sonra çağrılır.
onPause()
Uygulama kesintiye uğradığında devreye girer. Örneğin bir uyarı penceresi açıldığında devreye girer. Ya da çoklu ekran kullanımı mümkün olan android cihazlarında diğer pencereye geçildiğinde devreye girer.
onStop()
Uygulama arka plana atıldığında tahmin edebileceğiniz gibi önce kesintiye uğradığında çalışan onPause çağrılır. Ardından uygulamanın durdurulduğunu belirten onStop çağrılır. Eğer kullanıcı uygulamaya geri dönerse onResume() çağrılır eğer uygulamayı kapatırsa onDestroyView() çağrılır.
onDestroyView()
Bu metodda onCreateView metondunda çizilen görünümler öldürülür. Yani ram yetersizliğinden dolayı onDestroyView() çağrılırsa uygulamaya geri dönüşte onCreateView() metodundan itibaren tekrar çağrılır.
onDestroy()
Bu metodda fragment yok edilmeden önce son temizleme işlemleri yapılır.
onDetach()
Bu metod Fragment ile Activity ayrıldığında çağrılır. onAttach() metodunda yapılan işlemin tam tersidir.
Bu makalede sizlere Fragment nedir ve yaşam döngüsü nasıldır anlatmaya çalıştım. Yazıma medium üzerinden de ulaşabilirsiniz.