为了防止用户在NavigationView中选择项目时发生事件,您可以使用以下代码:
//在NavigationView上禁用事件 navigationView.setNavigationItemSelectedListener(null);
//执行你需要的代码 //例如加载主屏幕 loadHomeScreen();
//重新启用事件 navigationView.setNavigationItemSelectedListener(this);
另外,在onNavigationItemSelected中使用setCheckedItem()方法来选择项目可能无效,因为此方法会导致出发onNavigationItemSelected方法自身。因此,您可以使用以下代码:
//在onNavigationItemSelected中禁用事件 @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { navigationView.setNavigationItemSelectedListener(null); switch (item.getItemId()) { case R.id.home: loadHomeScreen(); break; case R.id.dashboard: loadDashboardScreen(); break; //添加其他选项的代码... } //重新启用事件 navigationView.setNavigationItemSelectedListener(this); return true; }
上一篇:AndroidNavigationViewItem点击只响应一次
下一篇:Androidnavigation中popBackStack在使用时与findNavController().popBackStack(R.id.f1,false)的行为不同。