首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓: DataBinding和ViewBinding的区别

安卓: DataBinding和ViewBinding的区别
EN

Stack Overflow用户
提问于 2019-09-21 13:30:33
回答 4查看 53.9K关注 0票数 121

自Jetpack发布以来,我们一直在使用DataBinding。安卓文档显示,ViewBinding是在AndroidStudio3.6金丝雀11+.中添加的

我阅读了这些文档,但是它看起来类似于DataBinding.

有人能解释一下这两个概念的区别吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-11-20 05:32:35

根据官方文件

ViewBinding

仅将视图绑定到代码。

DataBinding

将数据(从代码)绑定到视图+ ViewBinding (将视图绑定到代码)

有三个重要的区别

  1. 使用视图绑定,布局不需要布局标记。
  2. 不能使用视图绑定将布局与xml中的数据绑定(没有绑定表达式,没有BindingAdapters,也没有视图绑定的双向绑定)
  3. 视点绑定的主要优点是速度和效率。它的构建时间更短,因为它避免了与绑定相关的开销和性能问题,因为注释处理器会影响到绑定的构建时间。

简而言之,没有任何视图绑定可以做绑定不能做的事情(尽管以更长的构建时间为代价),而且有很多数据绑定可以完成视图绑定所不能做到的事情。

票数 169
EN

Stack Overflow用户

发布于 2021-01-14 20:02:19

ViewBinding与数据库

这就是为什么我想一起解释ViewBindingDataBinding的原因。

如您所见,ViewBindingDataBinding库的一种子集,这意味着ViewBindingDataBiding可以在绑定布局方面完成相同的工作。这也意味着,对于DataBinding,您可能不需要ViewBinding,因为它将执行ViewBinding应该做的事情,并且还提供一些额外的功能,例如双向绑定,以及在XML文件中使用变量。

然后,这可能导致一个问题

“那么,让我们使用DataBinding吧,因为它听起来更别致!”

等一等。尽管听起来很奇怪,但它是一个相当重的加载库,可能会导致更长的编译时间。因此,如果您不打算只使用DataBinding功能,那么最好考虑ViewBinding,因为它在构建时间和apk大小方面确实有一些优势。

欲了解更多细节,请阅读本文

票数 45
EN

Stack Overflow用户

发布于 2021-05-27 12:50:11

根据官方定义,

视图绑定允许我们更容易地编写与视图交互的代码。一旦在模块中启用了视图绑定,它就会为该模块中的每个XML布局文件生成一个绑定类。绑定类的实例包含对相应布局中具有ID的所有视图的直接引用。

Data是一个支持库,它允许您使用声明格式而不是编程方式将布局中的UI组件绑定到应用程序中的数据源。

差异视图绑定和数据绑定

  1. 视图绑定库比数据绑定库更快,因为它没有使用底层的注释处理器,而且在编译时间方面,View绑定更高效。
  2. 视图绑定的唯一功能是绑定代码中的视图。数据绑定提供了一些更多的选项,比如绑定表达式,这允许我们将表达式连接变量写入布局中的视图。
  3. 数据绑定库适用于可观察的数据对象,在底层数据更改时不必担心刷新UI。
  4. 数据绑定库为我们提供了绑定适配器。
  5. 数据绑定库为我们提供了双向数据绑定,这是一种将对象绑定到xml布局的技术,这样对象和布局都可以相互发送数据。

要详细了解视图绑定和数据绑定,可以阅读以下文章,

https://medium.com/geekculture/android-viewbinding-over-findviewbyid-389401b41706

https://anubhav-arora.medium.com/android-view-binding-v-s-data-binding-5862a27524e9

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58040778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档