通过视图绑定功能,您可以更轻松地编写可与视图交互的代码。在模块中启用视图绑定之后,系统会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。
在大多数情况下,视图绑定会替代 findViewById。
启用
只能在 Android Studio 3.6 Canary 11 及更高版本中使用。1
2
3
4
5
6android {
...
viewBinding {
enabled = true
}
}
启用后,会根据 xml 名称生成一个驼峰命名,结尾带上 Binding 的绑定类。例如:result_profile.xml,会生成 ResultProfileBinding 的绑定类,这个绑定类 getRoot 方法返回根布局,xml 中所有有 id 的 View 也能通过此类直接获取。相比于 kotlin-android-extensions,它不会空指针,并且 id 唯一。kotlin-android-extensions 直接获取对应 id 的 view 有可能导致空指针。另一点,如果我们很多 xml 里的 id 有一样的命名,会很难区分。且如果一个页面引用了 2 个 xml,这 2 个 xml 里是不能使用同样的 id 的,编译器会不知道要去找哪个 id 从而报错,而使用 viewBinding 这些便都解决了。
more >>