#抽屉控件NavigationView的添加:(来源:github)
图示:

1.activity_main.xml
添加跟布局:
<android.support.v4.widget.DrawerLayout
android:id="@+id/main_draw_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
//------------------------------------------------------
// 中间布局
//-----------------------------------------------------
<!-- 抽屉控件The navigation drawer -->
<android.support.design.widget.NavigationView
android:id="@+id/left_draw"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff"
app:menu="@menu/activity_main_drawer"
/>
</android.support.v4.widget.DrawerLayout>
2.MainActivity.java
/**
* a.初始化抽屉按钮
*/
private void initDrawerView() {
mainDrawLayout = (DrawerLayout) findViewById(R.id.main_draw_layout);
leftDraw = (NavigationView) findViewById(R.id.left_draw);
View view=leftDraw.inflateHeaderView(R.layout.activity_view_nav_header_main);
leftDraw.setNavigationItemSelectedListener(this);
}
b.抽屉的监听
/**
* 抽屉控件的选择监听
* @param item
* @return
*/
@Override
public boolean onNavigationItemSelected(MenuItem item) {
//抽屉控件的选中实现
int id = item.getItemId();
switch (id) {
case R.id.nav_daily_read:
// startActivity(new Intent(MainActivity.this, DailyActivity.class));
Toast.makeText(this,"每日一文",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_gank:
startActivity(new Intent(MainActivity.this, MeizhiActivity.class));
Toast.makeText(this,"妹纸",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_home_recommend:
startActivity(new Intent(MainActivity.this, ReDailyActivity.class));
Toast.makeText(this,"每日推荐",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_setting:
//startActivity(new Intent(MainActivity.this, AboutActivity.class));
Toast.makeText(this,"关于",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_stars:
// startActivity(new Intent(MainActivity.this, FavListActivity.class));
Toast.makeText(this,"我的收藏",Toast.LENGTH_SHORT).show();
break;
}
return true;
}
c.关闭抽屉
// 返回按键
private long exitTime = 0;
@Override
public void onBackPressed() {
if (mainDrawLayout.isDrawerOpen(GravityCompat.START)) {
mainDrawLayout.closeDrawer(GravityCompat.START);
} else {
if (System.currentTimeMillis() - exitTime > 2000) {
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
super.onBackPressed();
}
}
}