首页 > 解决方案 > 错误:类型不匹配:推断类型为单位,但预期为布尔值

问题描述

我在导航抽屉中有错误。我在片段(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
            }

标签: androidkotlinnavigationdrawer

解决方案


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
            }
        }


推荐阅读