View Binding是否应该取代Data Binding?

4

目前,我在两种情况下使用数据绑定

  • 在片段中访问视图
  • 在布局中与视图模型订阅数据。

当我与视图绑定进行比较时,我发现两种方法都不错(视图绑定更好地访问视图数据绑定用于绑定数据), 因此哪种模式应该首选MVVM?

我应该转到视图绑定,并仅在片段中处理ViewModel-layout连接吗?

3个回答

5
针对您的问题“View Binding是否应该替代Data Binding”,答案取决于具体情况。
ViewBinding仅生成布局文件的ViewBinding,因此您可以在不使用findViewById的情况下引用视图。
DataBinding提供了相同的功能,但还提供了额外的功能,如数据绑定表达式(将常见的Java逻辑放入XML中)、整个xml的公共数据变量、注释等。
那么何时使用它们呢?如果您只需要在Java代码中访问视图而没有任何复杂/重复的视图逻辑(例如:根据一个数据变量更改多个视图的可见性),那么您应该使用ViewBinding,因为它更轻便和更快速。
但是,如果您需要更多的功能,比如绑定表达式、绑定适配器等(这是大型项目的一般要求),您应该使用DataBinding,因为它提供了更多的功能。

如需更多信息,请查看以下链接:
https://developer.android.com/topic/libraries/view-binding#data-binding - AndroidDeveloper的比较
https://proandroiddev.com/new-in-android-viewbindings-the-difference-from-databinding-library-bef5945baf5e - ProAndroidDev的比较


2

View binding(视图绑定)不会取代 Data binding(数据绑定)。

View binding 旨在处理简单的用例,而您可以在需要高级功能的布局中使用 data binding。

View binding 的优势:

  • 更快的编译速度:View binding 不需要注释处理,因此编译时间更快。
  • 易于使用:View binding 不需要特殊标记的 XML 布局文件,因此在应用中采用更快。

与 data binding 相比的限制:

  • View binding 不支持布局变量或布局表达式,因此无法直接从 XML 布局文件声明动态 UI 内容。
  • View binding 不支持双向数据绑定。

由于这些考虑因素,在某些情况下最好在项目中同时使用 view binding 和 data binding。

请查看 Android 官方文档,比较 View binding 和 Data binding:Comparison with data binding


1

最终一切取决于您的使用情况,

如果您想通过xml设置数据但愿意增加构建速度的代价,请使用Databinding;如果您只是想省略findViewById,则使用view binding更为便宜。Databinding就像是viewbinding的超集。如果需要,您也可以同时使用两者。

我建议您观看Yigit的这个答案 https://youtu.be/QWHfLvlmBbs?t=42


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接