【问题标题】:onNavigationItemSelected not functioning?onNavigationItemSelected 不起作用?
【发布时间】:2021-07-09 05:15:56
【问题描述】:

我对 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”表达式?!

没有错误,没有警告,没有崩溃,没有任何事情。我点击按钮,什么也没有发生。

【问题讨论】:

    标签: android android-studio kotlin navigation-drawer androidx


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多