我有一个导航抽屉,其中包含一些与新导航架构组件一起使用的项目,可以导航到不同的片段。 现在我有一个项目应该触发一个动作(没有导航),但由于NavigationUI已经在使用NavigationItemSelectedListener,我无法添加第二个。
NavigationUI.setupWithNavController(navView, findNavController(navHostFragment))
如何处理不会导航"。
的项目的点击这似乎可以在不破坏导航的情况下工作:
navView.menu[3].setOnMenuItemClickListener
答案 0 :(得分:0)
你没有在这里填写你的代码,为此,我认为你的NavigationItemSelectedListener
上有Activity
的实现。如果是,请尝试通过navView
上的监听器,如下所示:
navigationView.setNavigationItemSelectedListener(this);
试一试:
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
//use just itens that "navigate"
return false;
}
});
尝试使用某些代码更新您的问题
答案 1 :(得分:0)
我有同样的问题。我使用navigationView.menu.getItem(3).setOnMenuItemClickListener
或navigationView.menu.findItem(R.id.action_delete_and_load).setOnMenuItemClickListener
答案 2 :(得分:0)
如果您想添加一个有动作但没有布局的项目,可以将您的项目添加到 activity_main_drawer.xml 文件中,如下所示。
<item android:id="@+id/nav_test"
android:icon="@drawable/ic_menu_test"
android:title="Test" />
,在 MainActivity.kt 中,您可以根据其ID查找项目并设置clickListener
navView.menu.findItem(R.id.nav_test).setOnMenuItemClickListener {
Log.d("MainActivity", "nav test clicked")
return@setOnMenuItemClickListener true
}
PS:无需将操作/布局或项目添加到 mobile_navigation.xml 文件中。
快乐编码:)