Veri Bağlama Kitaplığı Android Jetpack'in bir parçasıdır.
Veri Bağlama Kitaplığı, düzenlerinizdeki kullanıcı arayüzü bileşenlerini programatik olarak değil, bildirim temelli bir biçim kullanarak uygulamanızdaki veri kaynaklarına bağlamanıza olanak tanıyan bir destek kitaplığıdır.
Düzenler genellikle kullanıcı arayüzü çerçeve yöntemleri çağıran kod içeren etkinliklerde tanımlanır. Örneğin, aşağıdaki kod bir TextView
widget'ı bulmak ve bunu viewModel
değişkeninin userName
özelliğine bağlamak için findViewById()
işlevini çağırır:
Kotlin
findViewById<TextView>(R.id.sample_text).apply { text = viewModel.userName }
Java
TextView textView = findViewById(R.id.sample_text); textView.setText(viewModel.getUserName());
Aşağıdaki örnekte, doğrudan düzen dosyasında widget'a metin atamak için Veri Bağlama Kitaplığı'nın nasıl kullanılacağı gösterilmektedir. Bu, yukarıda gösterilen Java kodlarından herhangi birini çağırma ihtiyacını ortadan kaldırır. Atama ifadesinde @{}
söz diziminin kullanımına dikkat edin:
<TextView
android:text="@{viewmodel.userName}" />
Düzen dosyasına bileşenleri bağlamak, etkinliklerinizdeki birçok kullanıcı arayüzü çerçevesi çağrısını kaldırmanızı sağlar, böylece bakımlarını daha basit ve kolay hale getirir. Bu, uygulamanızın performansını iyileştirmenin yanı sıra bellek sızıntılarını ve boş işaretçi istisnalarını da önlemeye yardımcı olabilir.
Veri Bağlama Kitaplığını Kullanma
Veri Bağlama Kitaplığı'nı Android uygulamalarınızda nasıl kullanacağınızı öğrenmek için aşağıdaki sayfalardan yararlanabilirsiniz.
- Başlarken
- Android Studio'da veri bağlama kodu desteği de dahil olmak üzere geliştirme ortamınızı Veri Bağlama Kitaplığı ile çalışmaya hazır hâle getirmeyi öğrenin.
İfade dili, değişkenleri düzendeki görünümlere bağlayan ifadeler yazmanıza olanak tanır. Veri Bağlama Kitaplığı, düzendeki görünümleri veri nesnelerinize bağlamak için gereken sınıfları otomatik olarak oluşturur. Kitaplıkta içe aktarma işlemleri ve değişkenler gibi özelliklerin yanı sıra düzenlerinizde kullanabileceğiniz öğeler bulunur.
Kitaplığın bu özellikleri, mevcut düzenlerinizle sorunsuz bir şekilde bir arada kullanılabilir.
Örneğin, ifadelerde kullanılabilecek bağlama değişkenleri, kullanıcı arayüzü düzeninin kök öğesinin eş öğesi olan bir data
öğesinin içinde tanımlanır.
Her iki öğe de aşağıdaki örnekte gösterildiği gibi bir layout
etiketi içine alınır:
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="viewmodel"
type="com.myapp.data.ViewModel" />
</data>
<ConstraintLayout... /> <!-- UI layout's root element -->
</layout>
- Gözlemlenebilir veri nesneleriyle çalışma
- Veri Bağlama Kitaplığı, değişiklik olup olmadığını kolayca gözlemlemek için sınıflar ve yöntemler sunar. Temel veri kaynağı değiştiğinde kullanıcı arayüzünü yenileme konusunda endişelenmeniz gerekmez. Değişkenlerinizi veya özelliklerini gözlemlenebilir hale getirebilirsiniz. Kitaplık; nesneleri, alanları veya koleksiyonları gözlemlenebilir hale getirmenizi sağlar.
- Oluşturulan bağlama sınıfları
- Veri Bağlama Kitaplığı, düzenin değişkenlerine ve görünümlerine erişmek için kullanılan bağlama sınıfları oluşturur. Bu sayfada, oluşturulan bağlama sınıflarının nasıl kullanılacağı ve özelleştirileceği gösterilmektedir.
- Bağlama adaptörleri
- Her düzen ifadesinde, ilgili özellikleri veya işleyicileri ayarlamak için gereken çerçeve çağrılarını yapan bir bağlama bağdaştırıcısı vardır. Örneğin, bağlama bağdaştırıcısı, metin özelliğini ayarlamak için
setText()
yöntemini çağırma veya tıklama etkinliğine işleyici eklemek içinsetOnClickListener()
yöntemini çağırma işini halledebilir. Bu sayfadaki örneklerde kullanılanandroid:text
özelliğinin bağdaştırıcıları gibi en yaygın bağlama bağdaştırıcılarınıandroid.databinding.adapters
paketinde kullanabilirsiniz. Sık kullanılan bağlama bağdaştırıcılarının listesi için bağdaştırıcılar bölümüne bakın. Aşağıdaki örnekte gösterildiği gibi özel bağdaştırıcılar da oluşturabilirsiniz:
Kotlin
@BindingAdapter("app:goneUnless") fun goneUnless(view: View, visible: Boolean) { view.visibility = if (visible) View.VISIBLE else View.GONE }
Java
@BindingAdapter("app:goneUnless") public static void goneUnless(View view, Boolean visible) { view.visibility = visible ? View.VISIBLE : View.GONE; }
- Düzen görünümlerini Mimari Bileşenlerine bağlama
- Android Destek Kitaplığı'nda sağlam, test edilebilir ve bakımı yapılabilir uygulamalar tasarlamak için kullanabileceğiniz Mimari Bileşenleri bulunur. Kullanıcı arayüzünüzün geliştirilmesini daha da basitleştirmek için Mimari Bileşenleri'ni Veri Bağlama Kitaplığı ile kullanabilirsiniz.
- İki yönlü veri bağlama
- Veri Bağlama Kitaplığı iki yönlü veri bağlamayı destekler. Bu bağlantı türü için kullanılan gösterim, bir mülkte yapılan veri değişikliklerini alma ve bu mülke yönelik kullanıcı güncellemelerini aynı anda dinleme özelliğini destekler.
Ek kaynaklar
Veri bağlama hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın.
Sana Özel
Codelab uygulamaları
Blog yayınları
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken gösterilir
- Bağ bağdaştırıcıları {:#binding-adapters}
- Düzenler ve bağlama ifadeleri
- Oluşturulan bağlama sınıfları {: #binding-classes}