web-dev-qa-db-fra.com

Android: Différence entre DataBinding et ViewBinding

Nous utilisons DataBinding depuis la sortie de Jetpack. Android indique que ViewBinding a été ajouté dans Android Studio 3.6 Canary 11 +.

J'ai une vraie documentation mais son apparence ressemble à celle de DataBinding.

Quelqu'un peut-il expliquer comment nous pouvons différer ces deux concepts?

10
Pratik Butani

DATABINDING = liaison de DONNÉES (du code) aux vues + liaison de vues (LIAISON des vues au code)

VIEWBINDING = BINDING VIEWS au code uniquement

Selon les documents officiels @ https://developer.Android.com/topic/libraries/view-binding , il existe trois différences importantes

  1. Avec la liaison de vue, les mises en page n'ont pas besoin d'une balise de mise en page

  2. Vous ne pouvez pas utiliser la liaison de vue pour lier des présentations avec des données en XML (pas d'expressions de liaison, pas de BindingAdapters ni de liaison bidirectionnelle avec la liaison de vue)

  3. Les principaux avantages de la reliure sont la vitesse et l'efficacité. Il a un temps de construction plus court car il évite les problèmes de surcharge et de performances associés à la liaison de données en raison des processeurs d'annotation affectant le temps de construction de la liaison de données.

En bref, il n'y a rien que la liaison de vues puisse faire que la liaison de données ne puisse pas faire (mais au prix de temps de construction plus longs) et il y a beaucoup de liaisons de données qui peuvent faire que la liaison de vues ne peut pas "

9
Segun Wahaab

Comparaison avec la liaison de données

La liaison de vue et la liaison de données génèrent toutes deux des classes de liaison que vous pouvez utiliser pour référencer directement les vues. Cependant, la liaison de vues est destinée à gérer des cas d'utilisation plus simples et offre les avantages suivants par rapport à la liaison de données:

**Faster compilation:** View binding requires no annotation processing, so compile times are faster.
**Ease of use:** View binding does not require specially-tagged XML layout files, so it is faster to adopt in your apps. Once you enable view binding in a module, it applies to all of that module's layouts automatically.

Inversement, la liaison de vue présente les limitations suivantes par rapport à la liaison de données:

View binding doesn't support layout variables or layout expressions, so it can't be used to declare dynamic UI content straight from XML layout files.
View binding doesn't support two-way data binding.

En raison de ces considérations, il est préférable dans certains cas d'utiliser à la fois la liaison de vue et la liaison de données dans un projet. Vous pouvez utiliser la liaison de données dans les présentations qui nécessitent des fonctionnalités avancées et utiliser la liaison de vue dans les présentations qui ne le font pas.

Pour plus de détails, visitez https://developer.Android.com/topic/libraries/view-binding#Java

3
Alok Singh