自Jetpack发布以来,我们一直在使用DataBinding。安卓文档显示,ViewBinding是在AndroidStudio3.6金丝雀11+.中添加的
我阅读了这些文档,但是它看起来类似于DataBinding.。
有人能解释一下这两个概念的区别吗?
发布于 2019-11-20 05:32:35
根据官方文件
ViewBinding
仅将视图绑定到代码。
DataBinding
将数据(从代码)绑定到视图+ ViewBinding (将视图绑定到代码)
有三个重要的区别
简而言之,没有任何视图绑定可以做绑定不能做的事情(尽管以更长的构建时间为代价),而且有很多数据绑定可以完成视图绑定所不能做到的事情。
发布于 2021-01-14 20:02:19
ViewBinding与数据库
这就是为什么我想一起解释ViewBinding和DataBinding的原因。

如您所见,ViewBinding是DataBinding库的一种子集,这意味着ViewBinding和DataBiding可以在绑定布局方面完成相同的工作。这也意味着,对于DataBinding,您可能不需要ViewBinding,因为它将执行ViewBinding应该做的事情,并且还提供一些额外的功能,例如双向绑定,以及在XML文件中使用变量。
然后,这可能导致一个问题
“那么,让我们使用
DataBinding吧,因为它听起来更别致!”
等一等。尽管听起来很奇怪,但它是一个相当重的加载库,可能会导致更长的编译时间。因此,如果您不打算只使用DataBinding功能,那么最好考虑ViewBinding,因为它在构建时间和apk大小方面确实有一些优势。
发布于 2021-05-27 12:50:11
根据官方定义,
视图绑定允许我们更容易地编写与视图交互的代码。一旦在模块中启用了视图绑定,它就会为该模块中的每个XML布局文件生成一个绑定类。绑定类的实例包含对相应布局中具有ID的所有视图的直接引用。
Data是一个支持库,它允许您使用声明格式而不是编程方式将布局中的UI组件绑定到应用程序中的数据源。
差异视图绑定和数据绑定
要详细了解视图绑定和数据绑定,可以阅读以下文章,
https://medium.com/geekculture/android-viewbinding-over-findviewbyid-389401b41706
https://anubhav-arora.medium.com/android-view-binding-v-s-data-binding-5862a27524e9
https://stackoverflow.com/questions/58040778
复制相似问题