ошибка: несоответствие типов: предполагаемый тип равен единице, но ожидалось логическое значение

#android #kotlin #navigation #drawer

#Android #kotlin #навигация #ящик

Вопрос:

У меня ошибка в панели навигации.Мой ящик на фрагменте (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. В какой строке находится фактическое сообщение об ошибке? Где это происходит.

Ответ №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
            }
        }