Data Binding Library Componente di Android Jetpack.
La libreria di associazione dei dati è una libreria di supporto che ti consente di associare i componenti UI nei tuoi layout alle origini dati nella tua app utilizzando un formato dichiarativo anziché in modo programmatico.
I layout sono spesso definiti in attività con codice che chiama i metodi dei framework dell'interfaccia utente. Ad esempio, il codice seguente chiama findViewById()
per trovare un widget TextView
e associarlo alla proprietà userName
della variabile 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'esempio seguente mostra come utilizzare la libreria di associazione dei dati per assegnare testo al widget direttamente nel file di layout. Questo elimina la necessità di chiamare il codice
Java mostrato sopra. Tieni presente l'utilizzo della sintassi @{}
nell'espressione di assegnazione:
<TextView
android:text="@{viewmodel.userName}" />
L'associazione dei componenti nel file di layout ti consente di rimuovere molte chiamate al framework dell'interfaccia utente nelle tue attività, rendendole più semplici e facili da gestire. Ciò può anche migliorare le prestazioni dell'app e contribuire a evitare perdite di memoria ed eccezioni di tipo puntatore nullo.
Utilizzo della libreria di associazione dati
Utilizza le pagine seguenti per scoprire come utilizzare la libreria Data Binding nelle tue app Android.
- Inizia
- Scopri come preparare l'ambiente di sviluppo per l'utilizzo con la libreria di associazione dei dati, che include il supporto per il codice di associazione dei dati in Android Studio.
Layout ed espressioni di associazione
Il linguaggio di espressione consente di scrivere espressioni che collegano le variabili alle viste nel layout. La libreria di associazione dei dati genera automaticamente le classi necessarie per associare le viste nel layout agli oggetti di dati. La libreria fornisce e include funzionalità come importazioni e variabili che puoi utilizzare nei layout.
Queste funzionalità della libreria coesistono perfettamente con i tuoi layout esistenti.
Ad esempio, le variabili di associazione che possono essere utilizzate nelle espressioni sono definite all'interno di un elemento data
che è un elemento di pari livello dell'elemento principale del layout dell'interfaccia utente.
Entrambi gli elementi sono aggregati in un tag layout
, come mostrato nell'esempio seguente:
<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>
- Utilizzare gli oggetti di dati osservabili
- La libreria Data Binding fornisce classi e metodi per osservare facilmente i dati in caso di modifiche. Non devi preoccuparti di aggiornare l'interfaccia utente quando cambia l'origine dati sottostante. Puoi rendere osservabili le tue variabili o le loro proprietà. La libreria consente di rendere osservabili oggetti, campi o raccolte.
- Classi di associazione generate
- La libreria Data Binding genera classi di associazione utilizzate per accedere alle variabili e alle viste del layout. Questa pagina mostra come utilizzare e personalizzare le classi di associazione generate.
- Adattatori per associazione
- Per ogni espressione di layout, è disponibile un adattatore di associazione che esegue le chiamate framework necessarie per impostare le proprietà o i listener corrispondenti. Ad
esempio, l'adattatore di associazione può occuparsi di chiamare il metodo
setText()
per impostare la proprietà di testo o chiamare il metodosetOnClickListener()
per aggiungere un ascoltatore all'evento clic. Nel pacchettoandroid.databinding.adapters
sono disponibili gli adattatori di associazione più comuni, come gli adattatori per la proprietàandroid:text
utilizzati negli esempi di questa pagina. Per un elenco degli adattatori di associazione comuni, consulta la pagina relativa agli adattatori. Puoi anche creare adattatori personalizzati, come mostrato nell'esempio seguente:
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; }
- Associazione delle viste del layout ai componenti dell'architettura
- Android Support Library include i componenti dell'architettura, che puoi utilizzare per progettare app solide, testabili e gestibili. Puoi utilizzare i componenti dell'architettura con la libreria Data Binding per semplificare ulteriormente lo sviluppo dell'interfaccia utente.
- Associazione di dati bidirezionale
- La libreria Data Binding supporta l'associazione di dati bidirezionale. La notazione utilizzata per questo tipo di associazione supporta la possibilità di ricevere le modifiche dei dati a una proprietà e di ascoltare contemporaneamente gli aggiornamenti degli utenti relativi alla proprietà.
Risorse aggiuntive
Per scoprire di più sull'associazione di dati, consulta le seguenti risorse aggiuntive.
Samples
Codelab
Post del blog
Consigliato per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Adattatori di associazione {:#binding-adapters}
- Layout ed espressioni di associazione
- Classi di associazione generate {: #binding-classes}