android - View 绑定(bind)应该取代数据绑定(bind)吗?

标签 android mvvm architecture android-databinding android-viewbinding

目前,我正在使用 data binding 对于两种情况:

  • 访问 views在 fragment
  • 使用 view model 订阅数据在布局中。

  • 当我与 view binding 进行比较时,我认为这两种方法都很好(view binding 更好地访问 viewsdata binding 来绑定(bind)数据),
    所以 MVVM 应该首选哪种模式?

    我应该搬到 view binding 并处理 ViewModel-layout仅 fragment 中的连接?

    最佳答案

    对于您的问题Should View Binding replace Data Binding ,答案是它取决于用例。

    ViewBinding 只生成你的布局文件的 ViewBinding,所以你可以不使用 findViewById 来引用 View .

    DataBinding 为您提供相同但具有额外功能,例如数据绑定(bind)表达式(将通用 Java 逻辑放入 XML)、整个 xml 的通用数据变量、注释等。

    那么什么时候使用这些呢?
    如果您只需要访问 Java 代码中的 View 而不需要任何复杂/重复的 View 逻辑(例如:根据一个数据变量更改多个 View 的可见性),那么您应该使用 ViewBinding因为它更轻更快。

    但如果您需要的不仅仅是访问绑定(bind)表达式、绑定(bind)适配器等 View (这是大型项目的一般要求)。您应该使用 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 - View 绑定(bind)应该取代数据绑定(bind)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500840/

    相关文章:

    android - 为什么在大多数 Android 日志记录代码中使用 TAG

    Android - 创建和/或启动热词识别时出错

    objective-c - Objective-C : Missing architecture

    android - 由 : java. lang.RuntimeException : Cannot create an instance of class com. app.MyViewModel 引起

    android - 使用 MVVM 改造

    architecture - 现代 REST 应用程序是 3 层架构还是 4 层架构?

    javascript - 什么是编写大型ajax应用程序的好书或资源?

    用于相机预览的Android单元测试?

    android - 如何adb连接到Docker容器内的android模拟器?

    wpf - 如何在 Style Setter 中使用 multibiding