Untitled
unknown
plain_text
9 months ago
2.1 kB
6
Indexable
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;
}
});
Editor is loading...
Leave a Comment