Untitled
setOnNavigationItemSelectedListener(new OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { // Get the selected tab ID int itemId = item.getItemId(); // 🚫 Disable clicks on the 2nd and 3rd tabs if (itemId == R.id.navigation_tab2 || itemId == R.id.navigation_tab3) { return false; // Prevent selection } // ✅ Allow 1st and 4th tabs to work as usual if (fragmentManager.isStateSaved()) { return false; } String newlySelectedItemTag = graphIdToTagMap.get(itemId); if (newlySelectedItemTag == null || selectedItemTag.equals(newlySelectedItemTag)) { return false; // Avoid null errors } fragmentManager.popBackStack(firstFragmentTag, FragmentManager.POP_BACK_STACK_INCLUSIVE); NavHostFragment selectedFragment = (NavHostFragment) fragmentManager.findFragmentByTag(newlySelectedItemTag); if (selectedFragment != null) { FragmentTransaction transaction = fragmentManager.beginTransaction() .show(selectedFragment) .setPrimaryNavigationFragment(selectedFragment); for (int i = 0; i < graphIdToTagMap.size(); i++) { int key = graphIdToTagMap.keyAt(i); String tag = graphIdToTagMap.get(key); if (!tag.equals(newlySelectedItemTag)) { Fragment fragment = fragmentManager.findFragmentByTag(tag); if (fragment != null) { transaction.hide(fragment); } } } transaction.addToBackStack(firstFragmentTag) .setReorderingAllowed(true) .commit(); } selectedItemTag = newlySelectedItemTag; isOnFirstFragment = selectedItemTag.equals(firstFragmentTag); if (selectedFragment != null) { selectedNavController.setValue(selectedFragment.getNavController()); } return true; } });
Leave a Comment