Datenbindungsbibliothek Teil von Android Jetpack
Die Datenbindungsbibliothek ist eine Supportbibliothek zum Binden von UI-Elementen. Komponenten in Ihren Layouts zu Datenquellen in Ihrer App hinzufügen. Verwenden Sie dazu ein deklaratives statt programmatisch.
Layouts werden oft in Aktivitäten mit Code definiert, der das UI-Framework aufruft.
. Mit dem folgenden Code wird beispielsweise findViewById()
aufgerufen, um ein TextView
-Widget zu finden und an die Eigenschaft userName
des
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());
Das folgende Beispiel zeigt, wie Sie mit der Datenbindungsbibliothek Text zuweisen.
das Widget direkt in der Layoutdatei hinzuzufügen. Dadurch müssen Sie keine der
den oben gezeigten Java-Code. Beachten Sie, dass in der Zuweisung die Syntax @{}
verwendet wird.
Ausdruck:
<TextView
android:text="@{viewmodel.userName}" />
Durch das Binden von Komponenten in die Layoutdatei können Sie viele UI-Framework-Aufrufe in um sie einfacher zu verwalten und zu verwalten. Dies kann auch die Leistung deiner App zu verbessern und Speicherlecks und Nullzeiger zu vermeiden Ausnahmen.
Datenbindungsbibliothek verwenden
Auf den folgenden Seiten erfahren Sie, wie Sie die Datenbindungsbibliothek in Ihrem Android-Apps.
- Erste Schritte
- Hier erfahren Sie, wie Sie Ihre Entwicklungsumgebung auf die Arbeit mit den Daten vorbereiten. Bindungsbibliothek, einschließlich Unterstützung für Datenbindungscode in Android Studio.
Mit der Ausdruckssprache können Sie Ausdrücke schreiben, die Variablen zu den Ansichten im Layout hinzufügen. Die Datenbindungsbibliothek wird automatisch generiert die Klassen, die zum Binden der Ansichten im Layout mit Ihren Daten erforderlich sind. Objekte. Die Bibliothek bietet Funktionen wie Importe, Variablen und die Sie in Ihren Layouts verwenden können.
Diese Funktionen der Bibliothek koexistieren nahtlos mit Ihren bestehenden Layouts.
Beispielsweise werden die Bindungsvariablen, die in Ausdrücken verwendet werden können, definiert,
innerhalb eines data
-Elements, das dem Stammelement des UI-Layouts übergeordnet ist
Beide Elemente sind in ein layout
-Tag umschlossen, wie im Folgenden gezeigt:
Beispiel:
<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>
- Mit beobachtbaren Datenobjekten arbeiten
- Die Data Binding Library bietet Klassen und Methoden zur einfachen Beobachtung von Daten für Änderungen. Sie müssen die Benutzeroberfläche nicht aktualisieren, Änderungen der zugrunde liegenden Datenquelle. Sie können Ihre Variablen oder ihre beobachtbar sind. Mit der Bibliothek können Sie Objekte, Felder oder zu beobachten.
- Generierte Bindungsklassen
- Die Datenbindungsbibliothek generiert Bindungsklassen, die für den Zugriff auf die Variablen und Ansichten ändern. Auf dieser Seite erfahren Sie, wie Sie erzeugte Bindungsklassen.
- Bindungsadapter
- Für jeden Layoutausdruck gibt es einen Bindungsadapter, der die Methode
Framework-Aufrufen, die zum Festlegen der entsprechenden Properties oder Listener erforderlich sind. Für
Beispielsweise kann der Bindungsadapter den Aufruf der Methode
setText()
übernehmen. um die Texteigenschaft festzulegen, oder rufen Sie die MethodesetOnClickListener()
auf, um ein Listener für das Click-Event. Die gängigsten Bindungsadapter, wie der die Adapter für das Attributandroid:text
, die in den Beispielen auf dieser Seite verwendet werden, können imandroid.databinding.adapters
-Paket verwendet werden. Eine Liste der gängigen Bindungsadapter finden Sie unter Adapter. Sie können auch benutzerdefinierte Adapter erstellen, wie im folgenden Beispiel gezeigt:
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; }
- Layoutansichten an Architekturkomponenten binden
- Die Android Support Library enthält die Architektur Komponenten, mit denen Sie robuste, testbare und wartbare Anwendungen entwickeln. Sie können die Architektur Komponenten mit der Datenbindungsbibliothek zur weiteren Vereinfachung der Entwicklung Ihrer UI.
- Zweiwege-Datenbindung
- Die Datenbindungsbibliothek unterstützt die bidirektionale Datenbindung. Die für Diese Art von Bindung unterstützt die Möglichkeit, Datenänderungen an einer Property zu empfangen. und gleichzeitig die Nutzeraktualisierungen für diese Property beobachten.
Weitere Informationen
Weitere Informationen zur Datenbindung finden Sie hier: zusätzliche Ressourcen.
Produktproben
- <ph type="x-smartling-placeholder"></ph> Beispiele für Android Data Binding Library
Codelabs
- <ph type="x-smartling-placeholder"></ph> Codelab zur Android-Datenbindung
Blogposts
- <ph type="x-smartling-placeholder"></ph> Android Data Binding Library – Von Observable Fields zu LiveData in zwei Schritten
- <ph type="x-smartling-placeholder"></ph> Datenbindung – Gewonnene Erkenntnisse
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Bindungsadapter {:#binding-adapters}
- Layouts und Bindungsausdrücke
- Generierte Bindungsklassen {: #binding-classes}