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.

Düzenler ve bağlama ifadeleri

İ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çin setOnClickListener() yöntemini çağırma işini halledebilir. Bu sayfadaki örneklerde kullanılan android: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ı