错误:类型不匹配:推断类型为单位,但应为布尔值
Posted
技术标签:
【中文标题】错误:类型不匹配:推断类型为单位,但应为布尔值【英文标题】:error: Type mismatch: inferred type is Unit but Boolean was expected 【发布时间】:2021-03-01 21:39:33 【问题描述】:我在导航抽屉中有错误。我在片段 (center_fragment) 上的抽屉不工作!!
navigationView.setNavigationItemSelectedListener
drawerLayout.closeDrawers()
when (it.itemId)
R.id.contact -> findNavController().navigate(
centerFragmentDirections.actionCenterFragmentToContactFragment()
)
R.id.about_us -> findNavController().navigate(
centerFragmentDirections.actionCenterFragmentToAboutFragment()
)
else -> true
【问题讨论】:
实际的错误信息在哪一行?它发生在哪里。 【参考方案1】:setNavigationItemSelectedListener
期望您返回一个布尔值,但您没有在 2 个 when
分支中返回布尔值:
navView.setNavigationItemSelectedListener
when (it.itemId)
R.id.contact ->
findNavController().navigate(centerFragmentDirections.actionCenterFragmentToContactFragment())
return@setNavigationItemSelectedListener true
R.id.about_us ->
findNavController().navigate(centerFragmentDirections.actionCenterFragmentToAboutFragment())
return@setNavigationItemSelectedListener true
else -> true
【讨论】:
以上是关于错误:类型不匹配:推断类型为单位,但应为布尔值的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin - 类型不匹配:推断类型是 Any?但布尔值是预期的
获取类型不匹配:推断类型为 List 但应为 Collection
Android Kotlin - viewBinding 类型不匹配:推断类型为 DrawerLayout 但应为 ConstraintLayout