How to hide navigation drawer when opening certain fragment?

前端 未结 2 2059
小鲜肉
小鲜肉 2020-12-18 01:02

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 F

2条回答
  •  無奈伤痛
    2020-12-18 01:22

    Define an interface say DrawerLocker:

    interface DrawerLocker{
       public void setDrawerLocked(boolean shouldLock);
    }
    

    Implement this interface in your activity which contains the NavigationDrawer and override this method.

    class YourActivity implements DrawerLocker{
    ...
    ...
    public void setDrawerLocked(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);
    

提交回复
热议问题