Android View Binding
View Binding Google I/O 2019 etkinliğinde tanıtılıp Android dünyasında yerini almıştır. Bizi findViewById ile ui kısmında bulunan view’lere tek tek bind etme işleminden kurtarıp, ui kısımlarındaki veri bağlama işlemlerini kısa ve okunaklı kod parçaları ile (Data Binding ya da ButterKnife kütüphanelerinin kullanımına göre) daha hızlı bir şekilde yapmamızı sağlar.
Bu özelliği kullanabilmemiz için, build.gradle(Module:app) içerisinde view binding özelliğini aktifleştirmemiz gerekir.
android {
...
buildFeatures {
viewBinding true
}
}
Şimdi view binding kullanımını basit bir örnekle ele alalım. activity_main.xml layout’umuza bir TextView ve bir Button ekleyelim.
Şimdi de kod kısmında kullanımına bakalım
Kullandığımız her bir layout.xml dosyasına erişebilmemiz için bir binding sınıfı oluşturulur. activity_main.xml layoutu için ActivityMainBinding ile erişeceğiz. Layoutumuzun ismi activity_game.xml olsaydı ActivityGameBinding olarak erişecektik.
private lateinit var binding: ActivityMainBinding
Bu şekilde view’lere erişim sağlayabilmek için statik bir view öğesi oluşturmuş oluruz.
binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root)
Inflate işlemi yaparak oluşturulan binding sınıfının statik bir örneğini almış oluruz. Son olarak binding.root ile top level view ögesine erişim sağlayabiliriz.
binding.tvName.text = "View Binding" binding.btnChange.setOnClickListener{
binding.tvName.text = "Android Kotlin"
}
Yukarıda yaptığımız işlemlerle findViewById ile ui kısmında bulunan view’lere tek tek bind etme işleminden kurtulup binding diyerek istediğimiz view’lere erişim sağlayıp, değerlerini alabilir veri atama işlemlerini yapabiliriz. Ayrıca bu işlemlerin yanı sıra yukarıdaki tablodan da anlaşıldığı gibi view binding bize daha güvenli bir yapı ve hız kazandırır.
Aynı işlemlerin fragmentler için kullanımı da şu şekildedir.
View Binding özelliğini kullanmak için Android Studio 3.6 Canary 11+ sürümünü kullanıyor olmanız gerekiyor.
Daha detaylı bilgi için Google dokümanını inceleyebilirsiniz.
Evet arkadaşlar View Binding konusu bu şekilde ele almış olduk. Bir sonraki yazımızda görüşmek dileğiyle :)