findviewbyID 嵌套布局(findviewbyid什么意思)

2022-11-13 22:18:23 0

findviewbyID 嵌套布局(findviewbyid什么意思)

从 Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代 findViewById,从而可以帮您简化代码、移除 bug,并且从 findViewById的模版代码中解脱出来。

本文梗概

  • 在 build.gradle 中就可以方便快捷地开启视图绑定且无须额外引入依赖库
  • 视图绑定会为 Module 中的每一个布局文件生成一个绑定对象 。

    在 Activity 中使用视图绑定

    假如 有一个布局文件名叫 activity_awesome.xml,其中包含了一个按钮和两个文本视图。视图绑定会为这个布局生成一个名叫 ActivityAwesomeBinding的类,布局文件中所有拥有 id 的视图,都会在这个类中有一个对应的属性:

    overridefunonCreate都会自动生成一个名为 root的属性。在 ActivityonCreate方法中,要将 root传入 setContentView方法,从而让 Activity 可以使用绑定对象中的布局。

    publicfinalclassActivityAwesomeBindingimplementsViewBinding{ ...

    @NonNullpublicfinalIncludedButtonsBinding includes;

    视图绑定会在 ActivityAwesomeBinding中生成一个 IncludedButtonsBinding的引用。

    结合数据绑定来使用视图绑定

    视图绑定只是 findViewById的取代方案,如果您希望在 XML 中自动绑定视图,可以使用数据绑定库。数据绑定和视图绑定可以生成同样的组件,它们可以同时工作。

    在两者都被开启时,使用 标签的布局会由数据绑定来生成绑定对象;而其余的布局则由视图绑定生成绑定对象。

    我们之所以开发视图绑定作为数据绑定的补充,是因为许多开发者反映说,希望有一个轻量的解决方案,能在数据绑定之外替代 findViewById——视图绑定提供的正是这一功能。

    • 数据绑定

      https://developer.android.google.cn/topic/libraries/data-binding

    视图绑定对比 Kotlin 合成方法与 ButterKnife

    关于视图绑定,一个最常见的问题是: "我是否应该用视图绑定替代 Kotlin 合成方法或 ButterKnife ? " 二者都是目前十分成功的组件库,有许多应用使用它们解决 findViewById的问题。

    对于大多数应用来说,我们推荐尝试使用视图绑定来替代这两个库,因为视图绑定可以提供更加安全和准确的视图映射方式。

    视图绑定空安全、只引用当前布局中的视图、支持 Java 和 Kotlin,同时也更简洁

    上图为对比视图绑定、ButterKnife 和 Kotlin 合成方法的功能。

    点击屏末| 阅 读 原 文 | 了解更多有关视图绑定的信息

    你会尝试使用吗?

    关键字:  findviewbyID 嵌套布局  findviewbyid什么意思  findviewbyid使用方法  findViewById的作用是  findviewbyid出现红色