Bibliothèque Data Binding Fait partie d'Android Jetpack.

La bibliothèque Data Binding est une bibliothèque Support qui vous permet de lier des composants d'interface utilisateur dans vos mises en page à des sources de données de votre application à l'aide d'un format déclaratif plutôt que de manière programmatique.

Les mises en page sont souvent définies dans des activités avec du code qui appelle des méthodes de framework d'UI. Par exemple, le code ci-dessous appelle findViewById() pour rechercher un widget TextView et le lier à la propriété userName de la variable viewModel:

Kotlin

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

Java

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

L'exemple suivant montre comment utiliser la bibliothèque Data Binding pour attribuer du texte au widget directement dans le fichier de mise en page. Cela évite d'avoir à appeler le code Java présenté ci-dessus. Notez l'utilisation de la syntaxe @{} dans l'expression d'attribution:

<TextView
    android:text="@{viewmodel.userName}" />

La liaison de composants dans le fichier de mise en page vous permet de supprimer de nombreux appels de framework d'UI dans vos activités, ce qui les rend plus simples et plus faciles à gérer. Cela peut également améliorer les performances de votre application et éviter les fuites de mémoire et les exceptions de pointeur nul.

Utiliser la bibliothèque Data Binding

Consultez les pages suivantes pour découvrir comment utiliser la bibliothèque Data Binding dans vos applications Android.

Commencer
Découvrez comment préparer votre environnement de développement à utiliser la bibliothèque Data Binding, y compris la prise en charge du code de liaison de données dans Android Studio.

Dispositions et expressions de liaison

Le langage d'expression vous permet d'écrire des expressions qui connectent des variables aux vues de la mise en page. La bibliothèque Data Binding génère automatiquement les classes requises pour lier les vues de la mise en page à vos objets de données. La bibliothèque fournit des fonctionnalités telles que des importations, des variables et des inclusions que vous pouvez utiliser dans vos mises en page.

Ces fonctionnalités de la bibliothèque coexistent de manière transparente avec vos mises en page existantes. Par exemple, les variables de liaison qui peuvent être utilisées dans les expressions sont définies dans un élément data, frère de l'élément racine de la mise en page de l'interface utilisateur. Les deux éléments sont encapsulés dans une balise layout, comme illustré dans l'exemple suivant:

<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>

Utiliser des objets de données observables
La bibliothèque Data Binding fournit des classes et des méthodes permettant d'observer facilement les modifications des données. Vous n'avez pas à vous soucier d'actualiser l'UI lorsque la source de données sous-jacente change. Vous pouvez rendre vos variables ou leurs propriétés observables. La bibliothèque vous permet de rendre des objets, des champs ou des collections observables.
Classes de liaison générées
La bibliothèque Data Binding génère des classes de liaison utilisées pour accéder aux variables et aux vues de la mise en page. Cette page explique comment utiliser et personnaliser les classes de liaison générées.
Adaptateurs de liaison
Pour chaque expression de mise en page, il existe un adaptateur de liaison qui effectue les appels du framework requis pour définir les propriétés ou les écouteurs correspondants. Par exemple, l'adaptateur de liaison peut se charger d'appeler la méthode setText() pour définir la propriété de texte ou la méthode setOnClickListener() pour ajouter un écouteur à l'événement de clic. Les adaptateurs de liaison les plus courants, tels que ceux de la propriété android:text utilisée dans les exemples de cette page, sont disponibles dans le package android.databinding.adapters. Pour obtenir la liste des adaptateurs de liaison courants, consultez la section Adaptateurs. Vous pouvez également créer des adaptateurs personnalisés, comme illustré dans l'exemple suivant:

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;
}

Lier des vues de mise en page aux composants d'architecture
La bibliothèque Android Support inclut les composants d'architecture, que vous pouvez utiliser pour concevoir des applications robustes, testables et faciles à gérer. Vous pouvez utiliser les composants d'architecture avec la bibliothèque Data Binding pour simplifier davantage le développement de votre UI.
Liaison de données bidirectionnelle
La bibliothèque Data Binding accepte la liaison de données bidirectionnelle. La notation utilisée pour ce type de liaison permet de recevoir en même temps les modifications de données apportées à une propriété et d'écouter les mises à jour utilisateur apportées à cette propriété.

Ressources supplémentaires

Pour en savoir plus sur la liaison de données, consultez les ressources supplémentaires suivantes.

Exemples

Ateliers de programmation

Articles de blog