Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带导航项目和普通项目的导航抽屉_Android_Kotlin_Navigation Drawer_Android Architecture Components - Fatal编程技术网

Android 带导航项目和普通项目的导航抽屉

Android 带导航项目和普通项目的导航抽屉,android,kotlin,navigation-drawer,android-architecture-components,Android,Kotlin,Navigation Drawer,Android Architecture Components,我有一个导航抽屉,里面有几个项目,我使用新的导航架构组件来导航到不同的片段。 现在我有一个项目应该触发一个操作(没有导航),但是由于NavigationUI已经在使用NavigationItemSelectedListener,我无法添加第二个项目 NavigationUI.setupWithNavController(navView, findNavController(navHostFragment)) 如何处理不“导航”的项目的点击 这似乎可以在不破坏导航的情况下工作: navView.

我有一个导航抽屉,里面有几个项目,我使用新的导航架构组件来导航到不同的片段。 现在我有一个项目应该触发一个操作(没有导航),但是由于NavigationUI已经在使用NavigationItemSelectedListener,我无法添加第二个项目

NavigationUI.setupWithNavController(navView, findNavController(navHostFragment))
如何处理不“导航”的项目的点击

这似乎可以在不破坏导航的情况下工作:

navView.menu[3].setOnMenuItemClickListener

您没有将代码放在这里,为此,我假定您在
活动上实现了
NavigationItemSelectedListener
。如果是,请尝试在
navView
上传递侦听器,如下所示:

相反,它:

    navigationView.setNavigationItemSelectedListener(this);
试试看:

    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            //use just itens that "navigate"
            return false;
        }
    });

试着用一些代码更新你的提问,我也有同样的问题。我使用
navigationView.menu.getItem(3).setOnMenuItemClickListener
navigationView.menu.findItem(R.id.action\u delete\u and\u load).setOnMenuItemClickListener

如果你想添加一个有动作但没有布局的项目,你可以将你的项目添加到activity\u main\u drawer.xml文件中,如下所示

     <item android:id="@+id/nav_test"
            android:icon="@drawable/ic_menu_test"
            android:title="Test" />
PS:无需将操作/布局或项目添加到mobile\u navigation.xml文件中


快乐编码:)

您可以使用setupWithNavController添加代码吗。(在上面添加了代码)
 navView.menu.findItem(R.id.nav_test).setOnMenuItemClickListener {
            Log.d("MainActivity", "nav test clicked")
            return@setOnMenuItemClickListener true
        }