【问题标题】:Are there any cons when using view binding rather than findViewById?使用视图绑定而不是 findViewById 有什么缺点吗?
【发布时间】:2020-12-13 10:55:43
【问题描述】:

因为我通过启用发现了视图绑定的使用

   buildFeatures {
         viewBinding true
     }

在我的 gradle 文件中,我再也没有在我的代码中使用 findviewById。我现在想知道以这种方式做事是否有缺点。 如果这是最好的方法,为什么android studio在创建新项目时默认不启用此选项?如果不是,我什么时候应该避免使用视图绑定?谢谢。

【问题讨论】:

  • 阅读here
  • 谢谢,但我认为这个链接是在讨论视图绑定和数据绑定。这不完全是这里想要的。

标签: android android-studio gradle android-viewbinding


【解决方案1】:

一旦您为项目启用它,视图绑定将为您的所有布局生成一个绑定类。这是我看到的唯一“骗局”,它只会生成更多代码,因此会增加项目的大小、编译时间等。虽然对于布局很少的项目来说差异不大,但它可能会发生显着变化对于大型项目。

这是一篇关于 ViewBinding 性能的非常有趣的文章:https://blog.stylingandroid.com/view-binding-performance/

【讨论】:

  • 谢谢@Praveen。你能告诉我为什么你认为绑定类的生成不方便吗?
  • 因为它可以增加项目的大小,因此,构建时间。它在小型项目中可能不会引起注意,但它可以在具有大量布局的大型项目中产生影响。尽管 ViewBinding 的好处可能大大超过了少量的构建时间。我只是提到它是因为你要求一个骗局,这是我能想到的唯一骗局;)
  • 这不正确,您可以通过将 tools:viewBindingIgnore=“false” 添加到根目录来轻松排除生成的布局
  • 嗯,是的,当然,但是你没有使用 ViewBinding。他在问使用它的缺点。此外,必须将它添加到您不想生成绑定类的每个布局中是相当多的工作
  • 我说you can easily exclude a layout 如果您不想为该布局创建 ViewBinding 类,而不是all。它完全是开发人员的选择。在那种特定情况下,您的 CON 实际上并不正确。
猜你喜欢
  • 2012-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2012-06-09
  • 2011-05-04
  • 1970-01-01
相关资源
最近更新 更多