onNavigationItemSelected 不起作用?

onNavigationItemSelected not functioning?

我对 Android 编程还很陌生。我到处寻找答案,但我不认为我知道这个问题的根源。问题来了:

我今天在我的应用程序中添加了一个导航抽屉,我有 5 个不同的片段,我想在它们之间切换。除了最重要的事情外,一切都进行得很顺利:单击导航抽屉按钮时调用某些东西。

为了简单起见,导航抽屉现在只有两个按钮:主页和关于。

这是我的 onNavigationItemSelected :

    override fun onNavigationItemSelected(item: MenuItem): Boolean {
    when (item.itemId) {
        R.id.nav_home -> {
            Toast.makeText(this, "Home clicked", Toast.LENGTH_SHORT).show()
        }
        
        R.id.nav_about -> {
            Toast.makeText(this, "About clicked", Toast.LENGTH_SHORT).show()
        }

    }
    binding.drawerLayout.closeDrawer(GravityCompat.START)
    return true
}

如您所见,抽屉确实关闭了,但没有出现 Toast。我已经在 OnCreate 下面添加了这个:

        navigationView.setNavigationItemSelectedListener(this)

所以我不知道到底发生了什么?!为什么执行 onNavigationItemSelected 而不是“when”表达式?!

没有错误,没有警告,没有崩溃,什么都没有。我点击了按钮,但什么也没有发生。

一直就在我眼前,这两个不能很好地配合:

        navigationView.setupWithNavController(navController)
    navigationView.setNavigationItemSelectedListener(this)

我删除了第一行并保留了第二行,现在片段的所有事务都在发生并且 onNavigationItemSelected 工作正常。