目前,我正在使用data binding
两种情况:
views
在片段中访问view model
在布局中订阅数据。
当我与 进行比较时view binding
,我发现这两种方法都很好(view binding
更好地访问views
、data binding
绑定数据),那么MVVM 应该首选哪种模式?
我应该只移动view binding
并处理ViewModel-layout
片段中的连接吗?
目前,我正在使用data binding
两种情况:
views
在片段中访问view model
在布局中订阅数据。当我与 进行比较时view binding
,我发现这两种方法都很好(view binding
更好地访问views
、data binding
绑定数据),那么MVVM 应该首选哪种模式?
我应该只移动view binding
并处理ViewModel-layout
片段中的连接吗?
对于您的问题Should View Binding replace 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 的比较
视图绑定不会取代数据绑定。
视图绑定旨在处理更简单的用例,您可以在需要高级功能的布局中使用数据绑定。
视图绑定的好处:
与数据绑定相比的限制:
由于这些考虑,在某些情况下最好在项目中同时使用视图绑定和数据绑定。
请查看android官方文档将视图绑定与数据绑定进行比较:与数据绑定的比较
这一切最终取决于您的用例,
如果您想通过 xml 设置数据以提高构建速度的成本,请使用数据绑定,如果您只想省略视图绑定,请使用视图绑定findViewById
,与数据绑定相比,视图绑定便宜得多。数据绑定就像 viewbinding 的超集。如果需要,您也可以同时使用两者。
我建议您观看 Yigit https://youtu.be/QWHfLvlmBbs?t=42的回答。