findviewbyID 嵌套布局(findviewbyid什么意思)
从 Android Studio 3.6 开始,视图绑定能够通过生成绑定对象来替代 findViewById,从而可以帮您简化代码、移除 bug,并且从 findViewById的模版代码中解脱出来。
本文梗概
- 在 build.gradle 中就可以方便快捷地开启视图绑定且无须额外引入依赖库
- 视图绑定会为 Module 中的每一个布局文件生成一个绑定对象 。
在 Activity 中使用视图绑定
假如 您有一个布局文件名叫 activity_awesome.xml,其中包含了一个按钮和两个文本视图。视图绑定会为这个布局生成一个名叫 ActivityAwesomeBinding的类,布局文件中所有拥有 id 的视图,都会在这个类中有一个对应的属性:
@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 合成方法的功能。
点击屏末| 阅 读 原 文 | 了解更多有关视图绑定的信息
你会尝试使用吗?