Biblioteca de vinculación de datos Parte de Android Jetpack.
La biblioteca de vinculación de datos es una biblioteca de compatibilidad que te permite vincular la IU componentes de tus diseños a las fuentes de datos de tu app con un de forma programática, en lugar de hacerlo de manera programática.
Los diseños a menudo se definen en actividades con código que llama al framework de la IU.
. Por ejemplo, el siguiente código llama a findViewById()
para encontrar un widget TextView
y vincularlo a la propiedad 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());
El siguiente ejemplo muestra cómo usar la biblioteca de vinculación de datos para asignar texto
al widget directamente en el archivo de diseño. Esto elimina la necesidad de llamar a cualquiera de
el código Java que se muestra arriba. Observa el uso de la sintaxis @{}
en la tarea.
expresión:
<TextView
android:text="@{viewmodel.userName}" />
La vinculación de componentes en el archivo de diseño permite quitar muchas llamadas al framework de la IU en tus actividades para que sean más simples y fáciles de mantener. Esto también puede mejorar el rendimiento de tu app y ayudar a prevenir fugas de memoria y punteros nulos excepciones.
Uso de la biblioteca de vinculación de datos
Usa las siguientes páginas para aprender a usar la biblioteca de vinculación de datos en tu Apps para Android.
- Cómo comenzar
- Aprender a preparar tu entorno de desarrollo para trabajar con los datos Biblioteca de vinculación, incluida la compatibilidad con código de vinculación de datos en Android Studio.
Diseños y expresiones vinculantes
El lenguaje de expresiones te permite escribir expresiones que se conecten variables a las vistas en el diseño. La biblioteca de vinculación de datos se realiza automáticamente Genera las clases necesarias para vincular las vistas del diseño con tus datos. objetos. La biblioteca proporciona funciones como importaciones, variables y incluyes que puedes usar en tus diseños.
Estas funciones de la biblioteca coexisten perfectamente con tus diseños existentes.
Por ejemplo, las variables de vinculación que pueden usarse en expresiones se definen
dentro de un elemento data
que es secundario del elemento raíz del diseño de la IU
Ambos elementos están unidos a una etiqueta layout
, como se muestra a continuación
ejemplo:
<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>
- Cómo trabajar con objetos de datos observables
- La biblioteca de vinculación de datos proporciona clases y métodos para observar los datos fácilmente para ver los cambios. No tienes que preocuparte por actualizar la IU cuando cambios subyacentes en la fuente de datos. Puedes hacer que tus variables o sus son observables. La biblioteca te permite crear objetos, campos de datos observables.
- Clases de vinculación generadas
- La biblioteca de vinculación de datos genera clases de vinculación que se usan para acceder al variables y vistas de tu diseño. En esta página, se muestra cómo usar y personalizar clases de vinculación generadas.
- Adaptadores de vinculación
- Para cada expresión de diseño, hay un adaptador de vinculación que hace que la
llamadas al framework necesarias para establecer las propiedades o los objetos de escucha correspondientes. Para
Por ejemplo, el adaptador de vinculación puede llamar al método
setText()
. Para configurar la propiedad de texto o llama al métodosetOnClickListener()
para agregar una objeto de escucha al evento de clic. Los adaptadores de vinculación más comunes, como el adaptadores de la propiedadandroid:text
que se usan en los ejemplos de esta página. están disponibles para su uso en el paqueteandroid.databinding.adapters
. Para obtener una lista de los adaptadores de vinculación comunes, consulta adaptadores. También puedes crear adaptadores personalizados, como se muestra en el siguiente ejemplo:
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; }
- Cómo vincular vistas de diseño con componentes de arquitectura
- La biblioteca de compatibilidad de Android incluye la Arquitectura Componentes, que puedes usar para para diseñar apps sólidas, que puedan someterse a pruebas y admitan mantenimiento. Puedes usar el panel de Componentes con la biblioteca de vinculación de datos para simplificar aún más el desarrollo de la IU.
- Vinculación de datos en dos direcciones
- La biblioteca de vinculación de datos admite la vinculación de datos bidireccional. La notación utilizada para este tipo de vinculación admite la capacidad de recibir cambios de datos en una propiedad y, al mismo tiempo, escuchar las actualizaciones de los usuarios de esa propiedad
Recursos adicionales
Para obtener más información sobre la vinculación de datos, consulta los siguientes vínculos: recursos adicionales.
Ejemplos
Codelabs
Entradas de blog
Recomendaciones para ti
- Nota: El texto del vínculo se muestra cuando JavaScript está desactivado
- Adaptadores de vinculación {:#binding-adapters}
- Diseños y expresiones vinculantes
- Clases de vinculación generadas {: #binding-classes}