赞
踩
Gradle 配置
在 build.gradle 文件中添加
plugins {
....
id 'kotlin-android'
}
android{
......
viewBinding{
enabled = true
}
}
对于版本高的 AndroidStudio:
plugins {
....
id 'kotlin-android'
}
android{
......
buildFeatures {
viewBinding = true
}
}
配置完成后,每个布局文件都会对应生成 Binding 类,命名是将 XML文件 的名称转换为驼峰命名,并在末尾添加 Binding。
在 Activity 中延迟初始化 ViewBinding,在 onCreate 通过 对应布局文件的 binding 类调用 inflate 方法加载布局:
class MainActivity : AppCompatActivity() {
private lateinit var viewBinding:ViewBinding
private val userDao: UserDao by lazy{
AppDataBase.getInstance(baseContext).userDao()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(viewBinding.root)
}
}
如上所示完成后,调用控件时发现爆红
是因为延迟初始化变量的类型使用错误,应该是对应布局文件的 Binding 类,而不是 ViewBinding
private lateinit var viewBinding:ActivityMainBinding
记录一下这个每次都犯错的地方…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。