Skip to content

Instantly share code, notes, and snippets.

@budioktaviyan
Last active December 26, 2016 05:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save budioktaviyan/bc817e495846b156e3f2cb1f3992aa90 to your computer and use it in GitHub Desktop.
Save budioktaviyan/bc817e495846b156e3f2cb1f3992aa90 to your computer and use it in GitHub Desktop.
Main Activity Class (Cont'd)
public class MainActivity extends AppCompatActivity {
MenuItem mMenuItem;
DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mActionBarDrawerToggle;
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
mDrawerLayout = (DrawerLayout) findViewById(R.id.dl_main);
final NavigationView navigationView = (NavigationView) findViewById(R.id.nv_main);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull final MenuItem menuItem) {
mMenuItem = menuItem;
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
return true;
}
});
mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(final View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerClosed(final View drawerView) {
super.onDrawerClosed(drawerView);
if (null != mMenuItem) {
switchNavigationMenu(mMenuItem.getItemId());
}
}
@Override
public void onDrawerSlide(final View drawerView, final float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
if (null != drawerView && drawerView == navigationView) {
super.onDrawerSlide(drawerView, 0);
} else {
super.onDrawerSlide(drawerView, slideOffset);
}
}
};
mDrawerLayout.addDrawerListener(mActionBarDrawerToggle);
}
@Override
protected void onPostCreate(@Nullable final Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mActionBarDrawerToggle.syncState();
showHomeFragment();
}
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerVisible(GravityCompat.START)) {
mDrawerLayout.closeDrawers();
} else {
finish();
}
}
public void switchNavigationMenu(final int itemId) {
switch (itemId) {
case R.id.menu_home: {
showHomeFragment();
break;
}
case R.id.menu_detail: {
showDetailFragment();
break;
}
}
}
private void showHomeFragment() {
final String tag = HomeFragment.class.getSimpleName();
if (getSupportFragmentManager().findFragmentByTag(tag) == null) {
final Fragment fragment = new HomeFragment();
final FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fl_main, fragment, tag);
fragmentTransaction.commit();
}
}
private void showDetailFragment() {
final String tag = DetailFragment.class.getSimpleName();
if (getSupportFragmentManager().findFragmentByTag(tag) == null) {
final Fragment fragment = new DetailFragment();
final FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fl_main, fragment, tag);
fragmentTransaction.commit();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment