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