Biblioteka powiązań danych Część pakietu Android Jetpack.
Biblioteka powiązań danych to biblioteka pomocnicza, która umożliwia wiązanie komponentów interfejsu w układach ze źródłami danych w aplikacji za pomocą formatu deklaratywnego, a nie programowego.
Układy są często definiowane w działaniach za pomocą kodu, który wywołuje metody platformy interfejsu. Na przykład podany niżej kod wywołuje funkcję findViewById()
, aby znaleźć widżet TextView
i powiązać go z właściwością userName
zmiennej viewModel
:
Kotlin
findViewById<TextView>(R.id.sample_text).apply { text = viewModel.userName }
Java
TextView textView = findViewById(R.id.sample_text); textView.setText(viewModel.getUserName());
Z przykładu poniżej dowiesz się, jak za pomocą biblioteki powiązań danych przypisać tekst do widżetu bezpośrednio w pliku układu. Dzięki temu nie będzie trzeba wywoływać
kodu Java widocznego powyżej. Zwróć uwagę na składnię @{}
w wyrażeniu przypisania:
<TextView
android:text="@{viewmodel.userName}" />
Powiązywanie komponentów w pliku układu pozwala usuwać z działań wiele wywołań platformy interfejsu, co ułatwia ich obsługę. Może to też zwiększyć wydajność aplikacji i zapobiegać wyciekom pamięci oraz wyjątkom wartości null.
Korzystanie z biblioteki powiązań danych
Z tych stron dowiesz się, jak korzystać z biblioteki powiązań danych w aplikacjach na Androida.
- Rozpocznij
- Dowiedz się, jak przygotować środowisko programistyczne do pracy z biblioteką powiązań danych, w tym obsługę kodu wiązania danych w Android Studio.
Język wyrażeń umożliwia pisanie wyrażeń łączących zmienne z widokami w układzie. Biblioteka powiązań danych automatycznie generuje klasy wymagane do powiązania widoków w układzie z obiektami danych. Biblioteka udostępnia funkcje takie jak importowanie, zmienne i elementy, których możesz używać w swoich układach.
Te funkcje biblioteki płynnie współistnieją z Twoimi istniejącymi układami.
Na przykład zmienne powiązań, których można używać w wyrażeniach, są zdefiniowane w elemencie data
, który jest elementem równorzędnym elementu głównego układu interfejsu.
Oba elementy są umieszczone w tagu layout
, jak w tym przykładzie:
<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>
- Praca z obserwowalnymi obiektami danych
- Biblioteka powiązań danych udostępnia klasy i metody ułatwiające obserwację danych pod kątem zmian. Nie musisz odświeżać interfejsu po zmianie źródła danych. Twoje zmienne lub ich właściwości mogą być obserwowalne. Biblioteka umożliwia obserwację obiektów, pól i kolekcji.
- Wygenerowane klasy wiązania
- Biblioteka powiązań danych generuje klasy powiązań używane do uzyskiwania dostępu do zmiennych i widoków układu. Na tej stronie dowiesz się, jak używać wygenerowanych klas wiązania i dostosowywać je.
- Adaptery do oprawiania
- W przypadku każdego wyrażenia układu dostępny jest adapter powiązania, który wykonuje wywołania platformy wymagane do ustawienia odpowiednich właściwości lub detektorów. Na przykład adapter wiązania może wywołać metodę
setText()
, aby ustawić właściwość text, lub metodęsetOnClickListener()
, aby dodać odbiornik do zdarzenia kliknięcia. Najpopularniejsze adaptery wiązań, takie jak adaptery właściwościandroid:text
użyte w przykładach na tej stronie, są dostępne w pakiecieandroid.databinding.adapters
. Listę najpopularniejszych adapterów wiązań znajdziesz na stronie o adapterach. Możesz też utworzyć adaptery niestandardowe, jak w tym przykładzie:
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; }
- Powiązanie widoków układu z komponentami architektury
- Biblioteka pomocy Androida zawiera komponenty architektury, za pomocą których można projektować niezawodne, testowane i łatwe w utrzymaniu aplikacje. Możesz użyć komponentów architektury z biblioteką powiązań danych, aby jeszcze bardziej uprościć tworzenie interfejsu użytkownika.
- Dwukierunkowe wiązanie danych
- Biblioteka powiązań danych obsługuje dwukierunkowe wiązanie danych. Zapis używany w przypadku tego typu powiązania umożliwia odbieranie zmian w danych usługi i jednoczesne nasłuchiwanie jej aktualizacji przez użytkowników.
Dodatkowe materiały
Więcej informacji o wiązaniu danych znajdziesz w tych dodatkowych materiałach.
Próbki
Ćwiczenia z programowania
Posty na blogu
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony
- Adaptery oprawiające: {:#binding-adapters}
- Układy i wyrażenia powiązania
- Wygenerowane klasy powiązania {: #binding-classes}