可能是因为在XML布局文件中使用了不匹配的视图类型。确保在XML文件中使用的视图类型与ViewBinding中引用的视图类型匹配。例如:
在XML布局文件中使用的视图类型为DrawerLayout:
但在Kotlin代码中使用的视图类型为ConstraintLayout:
private lateinit var binding:ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val layout = binding.root.findViewById
正确的做法应该是在XML布局文件中使用与ViewBinding中引用的视图类型相同的类型。如果您想要确保类型匹配,可以在XML布局文件中为每个视图设置ID,在Kotlin代码中使用ID来引用相应的视图。例如:
XML布局文件中使用ConstraintLayout:
在Kotlin代码中使用相应的ID:
private lateinit var binding:ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) }
使用视图绑定时,系统自动将XML布局文件中的视图与Kotlin代码中的视图类型匹配。如果类型不匹配,将引发类型不匹配错误。
上一篇:AndroidKotlin-viewBindingImportunresolvedreferenceonviews
下一篇:AndroidKotlin-VolleyMultipart请求VolleyFileUploadRequest的JSONObject响应