title: How to hide navigation drawer when opening certain fragment?
body: <p>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 android). And if user already logged in, navigation drawer will always shown.</p>
  
  <blockquote>
    <p>MainActivity.java</p>
  </blockquote>
  
  <pre><code>public class MainActivity extends AppCompatActivity {
  
  private DrawerLayout navDrawerLayout;
  private Toolbar toolbar;
  private ActionBarDrawerToggle navDrawerToggle;
  
  private SharedPreferences pref;
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
  
      toolbar = (Toolbar) findViewById(R.id.toolbar);
      setSupportActionBar(toolbar);
  
      navDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
  
      // Find our drawer view
      NavigationView navDrawerView = (NavigationView) findViewById(R.id.navdrawer_view);
      // Setup drawer view
      setupDrawerContent(navDrawerView);
  
      navDrawerToggle = setupDrawerToggle();
  
      pref = getPreferences(0);
      initFirstFrame();
  }
  
  private ActionBarDrawerToggle setupDrawerToggle() {
      return new ActionBarDrawerToggle(this, navDrawerLayout, toolbar, R.string.drawer_open,  R.string.drawer_close);
  }
  
  private void setupDrawerContent(NavigationView navDrawerView) {
      navDrawerView.setNavigationItemSelectedListener(
              new NavigationView.OnNavigationItemSelectedListener() {
                  @Override
                  public boolean onNavigationItemSelected(MenuItem menuItem) {
                      selectDrawerItem(menuItem);
                      return true;
                  }
  
  
              });
  }
  
  public void selectDrawerItem(MenuItem menuItem) {
      // Create a new fragment and specify the fragment to show based on nav item clicked
      Fragment fragment = null;
      Class fragmentClass;
      switch(menuItem.getItemId()) {
          case R.id.events:
              fragmentClass = EventsFragment.class;
              break;
          case R.id.pengumuman:
              fragmentClass = NewsFragment.class;
              break;
          case R.id.edit_profil:
              fragmentClass = ProfileFragment.class;
              break;
          default:
              fragmentClass = EventsFragment.class;
      }
  
      try {
          fragment = (Fragment) fragmentClass.newInstance();
      } catch (Exception e) {
          e.printStackTrace();
      }
  
      // Insert the fragment by replacing any existing fragment
      FragmentManager fragmentManager = getSupportFragmentManager();
      fragmentManager.beginTransaction().replace(R.id.frame_content, fragment).commit();
  
      // Highlight the selected item has been done by NavigationView
      menuItem.setChecked(true);
      // Set action bar title
      setTitle(menuItem.getTitle());
      // Close the navigation drawer
      navDrawerLayout.closeDrawers();
  }
  
  private void initFirstFrame(){
      Fragment fragment;
      if(pref.getBoolean(Constants.IS_LOGGED_IN,false)){
          fragment = new ProfileFragment();
      }else {
          fragment = new LoginFragment();
          // in this login fragment, navdrawer should be invisible, the toolbar too I guess
      }
  
      FragmentManager fragmentManager = getSupportFragmentManager();
      FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
      fragmentTransaction.replace(R.id.frame_content,fragment);
      fragmentTransaction.commit();
  }
  
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
      return navDrawerToggle.onOptionsItemSelected(item) || super.onOptionsItemSelected(item);
  }
  
  // 'onPostCreate' called when activity start-up is complete after 'onStart()'
  // NOTE! Make sure to override the method with only a single 'Bundle' argument
  @Override
  protected void onPostCreate(Bundle savedInstanceState) {
      super.onPostCreate(savedInstanceState);
      // Sync the toggle state after onRestoreInstanceState has occurred
      navDrawerToggle.syncState();
  }
  
  @Override
  public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      // Pass any configuration change to the drawer toggles
      navDrawerToggle.onConfigurationChanged(newConfig);
  }
  
  }
  </code></pre>