|
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) { |
|
|
|
} |
|
}); |
|
} |