【问题标题】: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
            }

【问题讨论】:

  • 实际的错误信息在哪一行?它发生在哪里。

标签: android kotlin navigation drawer


【解决方案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
            }
        }

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 2020-04-24
    • 2020-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多