Android View Binding

Aysel Aydin
2 min readJun 20, 2020

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.

https://developer.android.com/topic/libraries/view-binding

Evet arkadaşlar View Binding konusu bu şekilde ele almış olduk. Bir sonraki yazımızda görüşmek dileğiyle :)

--

--

Aysel Aydin
Aysel Aydin

Written by Aysel Aydin

Master Expert AI & ML Engineer @Turkcell

No responses yet