Android-Kotlin Fragment
Fragment bir Android Jetpack öğesidir. Jetpack bizlerin android ’i daha verimli kullanmak için geliştirilmiş araçlar bütünüdür. Fragment’lar aslında kullanıcı arayüzleridir. Activity’ler ile beraber ve activityler den daha verimli çalışmak için kullandığımız bir yapıdır. Tek bir activity içerisinde bir den fazla fragment kullanabiliriz, bundan dolayı activity kapatılmadan farklı ekran tasarımlarına geçiş yapabiliriz. Fragment’lar içerisinde activity de yaptığımız her şeyi yapabiliriz.
Activitylerin yaşam döngüleri olduğu gibi Fragmentların da kendilerine özgü bir yaşam döngüleri vardır. Fragment yaşam döngüleri hakkında bilginiz yoksa aşağıdaki bloğu inceleyebilirsiniz.
Bir activity içerisinde birden fazla fragment tanımlanabilir. Yapacağımız örnek uygulamada bir activity içerisinde 2 adet farklı fragment kullanacağız.
Örnek bir proje açtıktan sonra belirtilen şekilde fragment galerisini açıyoruz.
Bu pencere içerisinden çeşitli tasarımlara sahip fragment seçiminde bulunabilirsiniz. Biz Blank Fragment ile devam edeceğiz. Blank Fragment boş bir fragment oluşturacaktır.
Bu adımdan sonra fragment’a dilediğiniz isimlendirmeyi yapıp işlemi tamamlayabilirsiniz. Uygulamamızda 2 adet fragment olacağı için bu adımları 1 kere daha tekrarlayınız.
BlankFragment.kt
içerisinde aşağıdaki görünümü elde edebilirsiniz. Diğer kod blokları ile işlemimiz olmayacaktır. OnCreateView içerisinde hangi layout ile çalışacağımızı belirtiyoruz. Bu görünümü BlankFragment
ve BlankFragment2
için elde ediniz.
Layout kısmında iki farklı tasarımda Fragment 1
ve Fragment 2
textine sahip ayrı textview’ lar ekleniyiz. Böylelikle fragment’lar arası geçişi gözlemleye bilelim.
Activity içerisinde, Dinamik veya statik olarak fragment tanımlaması yapılabilir.
Statik olarak fragment eklemek istersek activity_main.xml
içerisinde fragment companentini ekleyip,gösterilmesini istediğimiz fragment’ı seçebiliriz.
Dinamik olarak fragment eklemek istersekMainActivity.kt
içerisinden işlemleri gerçekleştiririz. Bu tanımlama için activity_main.xml
içerisinde FrameLayout
tanımlanır. Fragmentlerın görüntülenmesi FrameLayout
üzerinden gerçekleştirilir.
Dinamik bir şekilde fragment oluşturmak performans açısından daha verimlidir. Çünkü uygulama açıldığında biz hangi fragment’ın gösterilmesini veya gösterilmemesini çeşitli sorgular ile sağlıyabiliriz. Fakat statik olarak tanımladığımız fragmentlar xml de tanımladığımız için otomatik olarak çizdirilecektir. Şu şekilde bir önlem alabiliriz,belirli bir sorgu sonucuvisibilty=gone
yaparak fragmentın görüntülenmesini engelleyebiliriz fakat memory de yer kaplayacağı için performans olarak kötü bir kullanım olacaktır.
Biz örneğimiz için 2 kullanımıda konu edindik. activity_main.xml
kodlarına ulaşabilirsiniz.
Butonlara basıldığında hangi fragment’ın görüntüleneceğini belirtiyoruz.
Kotlin Fragment ları anlattığım yazımın sonuna geldik. Umarım faydalı olmuştur. Bir sonraki yazımda görüşmek dileğiyle. Keyifli Günler , Keyifli Kodlamalar.