Generalidades

Cómo usar el enlace de datos en Android | Por Farhan Tanvir | Abril de 2022

Haz que tu código sea más legible

Como usar el enlace de datos en Android Por
Foto de Emil Widlund en Unsplash

El enlace de datos se considera una de las mejores prácticas en el desarrollo moderno de Android. Es parte del jetpack de Android.elimina findViewById() Esta es a veces una operación costosa. El enlace de datos tiene muchos beneficios. Mantiene nuestro código limpio, mantenible y legible.

Primero necesitamos saber qué es el enlace de datos.Según documentación oficial

La biblioteca de vinculación de datos es una biblioteca de soporte que le permite vincular los componentes de la interfaz de usuario en un diseño a las fuentes de datos en su aplicación mediante un formato declarativo en lugar de mediante programación.

1650251260 363 Como usar el enlace de datos en Android Por

Esta es una magnífica aplicación. ¿no es así?

Esta aplicación está hecha con estructura MVVM y muchos otros componentes modernos de Android. Hoy veremos cómo implementé el enlace de datos en este proyecto.

Para este artículo, este GitHub Usa un repositorio. Siéntete libre de comprobarlo.Empecemos

Primero, habilite dataBinding Opciones de compilación en módulos de aplicación build.gradle documento.

android {
...
buildFeatures {
dataBinding true
}
}

Para generar clases vinculantes, necesitamos envolver el diseño en Etiqueta.Por ejemplo, vamos a comprobar lo siguiente fragment_image_viewer.xml .

puedes ver en lugar de empezar ConstraintLayout He empezado Etiqueta.diré Marca más tarde. Ahora que la configuración está completa, si construimos nuestro proyecto, se generarán las clases vinculantes.

Los enlaces tienen una convención de nomenclatura. Toma los nombres de los diseños XML, elimina los guiones bajos y hace que cada nombre comience con una letra mayúscula. Luego agregue enlaces al final. ¿Confundido? por ejemplo,

fragment_image_viewer.xml -> FragmentImageViewerBinding

Espero que esté claro ahora.

Dado que la compilación está completa, ahora podemos acceder a los enlaces como se muestra a continuación.

private var _binding: FragmentImageViewerBinding? = null
private val binding get() = _binding!!

Puedes ver el tipo de datos _binding FragmentImageViewerBinding Puedes preguntar, no podemos visitar FragmentImageViewerBinding como variables normales? Sí tu puedes. Pero en este caso, existe la posibilidad de una pérdida de memoria. Si desea obtener más información sobre las fugas de memoria en Android, consulte este artículo.

Anteriormente usábamos setContentView Pero en su lugar, podemos hacer algo como

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?,
): View? {
// Inflate the layout for this fragment
_binding = FragmentImageViewerBinding.inflate(inflater, container, false)
return binding.root
}

Ahora podemos usar binding variables para acceder a nuestros componentes de diseño y realizar operaciones relacionadas con el diseño.Como ejemplo de configuración de texto en un TextView, podemos usar binding.textView.text = "text" .

Dije antes que lo haré Marca más tarde. Ahora es el momento de hablar de ello.

simplemente pon, declara que hay datos y Las etiquetas describen el nombre y el tipo de datos.Puede acceder al valor en XML simplemente "@{variable_name}" Puede pasar cualquier tipo de datos al interior, así como objetos personalizados. Etiqueta. Esa es la belleza del enlace de datos.

En el ejemplo anterior, puede ver lo siguiente

<data>
<
variable
name="imageSrc"
type="com.farhan.tanvir.pexels.data.model.Src" />
data>

El nombre de la variable aquí es imageSrc Y el tipo es un objeto personalizado (en este caso, una clase de datos).puedes establecer variables imageSrc A partir de una ImageViewerFragment atravesar binding.imageSrc = imageSrc Ahora puedes acceder imageSrc Las variables en el diseño son solo "@{imageSrc}" .

Otra ventaja del enlace de datos es la personalización. Vamos a crear un enlace de datos personalizado que cargará una imagen en un ImageView.

Aquí creé un nombre de enlace personalizado loadImageFromUrl Esto cargará la imagen en ImageView Podemos usar este enlace personalizado en ImageView en el diseño XML como se muestra a continuación.

<ImageView
loadImageFromUrl="@{imageUrl}"
android:id="@+id/wallpaperImageView"
/>

ahora carga la imagen en ImageView Asombroso. ¿no es así?

LEER  HUAWEI MatePad T 10s - Tablet de 10.1"con pantalla FullHD (WiFi, RAM de 2GB, ROM de 32GB, procesador Kirin 710A, altavoces cuádruples, EMUI 10.0, Huawei Mobile Services & App Gallery), color Azul

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba