使用视图绑定 View Binding 替代 findViewById

更新日期: 2021-02-03 阅读次数: 2359 字数: 321 分类: Android

使用场景,例如,点击按钮获取输入框的内容。就需要写一堆 findViewById 的代码。

Android Studio 3.6 之后,可以使用 View Binding 来简化这个操作。

而且在绝大部分场景下,view binding 可以替代 findViewById。

修改 build.gradle 启用 view binding

编辑 Module build.gradle 的 android section, 添加

buildFeatures {
	viewBinding = true
}

然后,点击编辑区域顶部的 Sync Now 来更新 gradle 配置。

这样就可以在 activity / fragment 中使用 view binding 的方式来获取 layout 中的组件了。

如何获知生成的 Binding 类名字

我发现 Sync 之后,项目中通过 git 并没有发现生成了任何代码,所以也就不知道去哪里获取相应的 Binding 类名称。

可以通过 import 的自动提示来获取。

例如,需要在一个 fragment 中添加:

import com.sunzhongwei.todo.databinding. 等待提示:

Android Studio Binding 提示

就可以看到需要添加的 binding 类名称了。

DSL element 'android.viewBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.viewBinding'.

Module build.gradle 的 android section 中进行编辑。

旧的写法:

viewBinding {
    enabled = true
}

需要替换为新的写法:

buildFeatures {
	viewBinding = true
}

具体添加方法参考

https://developer.android.com/topic/libraries/view-binding

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式