Skip to content

Instantly share code, notes, and snippets.

@DanishAmjad12
Last active August 4, 2018 17:02
Show Gist options
  • Save DanishAmjad12/cc0f1722ce51d56a35f42286c2946cc0 to your computer and use it in GitHub Desktop.
Save DanishAmjad12/cc0f1722ce51d56a35f42286c2946cc0 to your computer and use it in GitHub Desktop.
private int clickedNavItem = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/**
* Drawer State Change Listener
* Initialize the checkedItem, navItemSelected & fragment variable
*/
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_one:
clickedNavItem = R.id.nav_one;
fragment = SampleFragment.newInstance(0);
break;
case R.id.nav_two:
clickedNavItem = R.id.nav_two;
fragment = SampleFragment.newInstance(1);
break;
case R.id.nav_five:
//Opens up an Intent
clickedNavItem = R.id.nav_five;
break;
}
drawerLayout.closeDrawer(GravityCompat.START);
}
/**
* Drawer State Change Listener
* Change the fragment after the drawer is closed
* To avoid lag while closing the drawer
*/
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
}
@Override
public void onDrawerClosed(View drawerView) {
/**
* Change fragment for all items excluding nav_five
* as it opens up an Activity
*/
switch (clickedNavItem) {
case R.id.nav_five:
startActivity(new Intent(context,SampleActivity.class));
break;
default:
getSupportFragmentManager().beginTransaction()
.setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out)
.replace(frameLayout.getId(), fragment)
.commit();
}
}
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment