How To Hide Navigation Drawer When Opening Certain Fragment?
I'm pretty new in android development. I want to hide navigation drawer when user is not logged in. So basically, it will shown login fragment (better in full screen like Facebook
Solution 1:
Define an interface say DrawerLocker:
interfaceDrawerLocker{
publicvoidsetDrawerLocked(boolean shouldLock);
}
Implement this interface in your activity which contains the NavigationDrawer and override this method.
classYourActivityimplementsDrawerLocker{
...
...
publicvoidsetDrawerLocked(boolean enabled){
if(enabled){
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
}else{
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
}
}
Now in your Fragment's onCreateView, call this method like:
((DrawerLocker)getActivity()).setDrawerLocked(true);
In your Fragment's onDestroyView, re enable the drawer layout:
((DrawerLocker)getActivity()).setDrawerLocked(false);
Solution 2:
This code in activity onCreate method will block drawer when you will have more than one fragment in stack:
getSupportFragmentManager().addOnBackStackChangedListener(() -> {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
} else {
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
}
});
Post a Comment for "How To Hide Navigation Drawer When Opening Certain Fragment?"