当前位置:   article > 正文

ViewBinding 找不到控件 Id_viewbinding没有生成对应的控件

viewbinding没有生成对应的控件
1. ViewBinding 配置

Gradle 配置

在 build.gradle 文件中添加

plugins {
    ....
    id 'kotlin-android'
}

android{

   ......
  
   viewBinding{
        enabled = true
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

对于版本高的 AndroidStudio

plugins {
    ....
    id 'kotlin-android'
}

android{

   ......
  
   buildFeatures { 
      viewBinding = true 
   }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

配置完成后,每个布局文件都会对应生成 Binding 类,命名是将 XML文件 的名称转换为驼峰命名,并在末尾添加 Binding。

2. 使用ViewBinding

在 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)
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

如上所示完成后,调用控件时发现爆红

在这里插入图片描述
是因为延迟初始化变量的类型使用错误,应该是对应布局文件的 Binding 类,而不是 ViewBinding

private lateinit var viewBinding:ActivityMainBinding
  • 1

记录一下这个每次都犯错的地方…

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/320035?site
推荐阅读
相关标签
  

闽ICP备14008679号