当您打电话时
NavigationUI.setupWithNavController(navigationView,navController),是说您要
NavController处理NavigationView中的单击事件,并根据NavigationUI文档导航到相关屏幕。这必然在
setNavigationItemSelectedListener()内部调用。
通过
setNavigationItemSelectedListener随后调用,您将删除原始侦听器,这就是为什么您的其他项目不再执行任何操作的原因。您可以通过调用以下命令触发默认行为
NavigationUI.onNavDestinationSelected()
@Overridepublic boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { int id = menuItem.getItemId(); if (id == R.id.callUs) { Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + "XXXxxxXXX")); if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},REQUEST_PHONE_CALL); } else { startActivity(intent); } } else { // Make your navController object final above // or call Navigation.findNavController() again here NavigationUI.onNavDestinationSelected(menuItem, navController); } drawer.closeDrawer(GravityCompat.START); return true;}



