package com.aspsine.swipetoloadlayout.demo; import android.content.Intent; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import com.aspsine.fragmentnavigator.FragmentNavigator; import com.aspsine.swipetoloadlayout.demo.fragment.BaseToolbarFragment; import java.util.Arrays; import java.util.List; public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener , BaseToolbarFragment.ToggleDrawerCallBack { private static final Integer ID_ARRAY[] = { R.id.nav_Twitter_style, R.id.nav_google_style, R.id.nav_yalantis_style, R.id.nav_jd_style, R.id.nav_set_header_footer_via_code }; private static final List<Integer> IDS = Arrays.asList(ID_ARRAY); private static final int DEFAULT_POSITION = 0; private DrawerLayout drawerLayout; /** * https://github.com/Aspsine/FragmentNavigator */ private FragmentNavigator mFragmentNavigator; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mFragmentNavigator = new FragmentNavigator(getSupportFragmentManager(), new MainFragmentAdapter(), R.id.container); mFragmentNavigator.setDefaultPosition(DEFAULT_POSITION); mFragmentNavigator.onCreate(savedInstanceState); setContentView(R.layout.activity_main); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); NavigationView navigationView = (NavigationView) findViewById(R.id.navigationView); navigationView.setNavigationItemSelectedListener(this); navigationView.setCheckedItem(IDS.get(DEFAULT_POSITION)); mFragmentNavigator.showFragment(mFragmentNavigator.getCurrentPosition()); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mFragmentNavigator.onSaveInstanceState(outState); } @Override public void openDrawer() { drawerLayout.openDrawer(GravityCompat.START); } @Override public boolean onNavigationItemSelected(final MenuItem menuItem) { drawerLayout.closeDrawer(GravityCompat.START); drawerLayout.postDelayed(new Runnable() { @Override public void run() { int itemId = menuItem.getItemId(); if (itemId == R.id.nav_about) { startActivity(new Intent(MainActivity.this, AboutActivity.class)); } else { mFragmentNavigator.showFragment(IDS.indexOf(itemId)); } } }, 200); return true; } }