详情的话可以查看这个网址:https://blog.csdn.net/s1674521/article/details/62220187
一、倒依赖
compile 'com.android.support:design:27.1.1'
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
二、在Activity的Xml中
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_na"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:id="@+id/main_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/night"
android:background="@color/colorPrimary"
android:layout_margin="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="旅行者说"
android:textColor="#ffffff"
android:textSize="20sp"
android:layout_marginLeft="16dp"/>
<ImageView
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/chat"
android:background="@color/colorPrimary"
android:layout_margin="20dp"/>
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="主页"
android:textSize="22sp"
android:gravity="center"/>
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav"
android:layout_gravity="left"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:headerLayout="@layout/head"
app:menu="@menu/new_menu"
>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
三、在Drawab里创建一个head.Xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
>
<ImageView
android:id="@+id/person"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_marginTop="42dp"
android:src="@drawable/head"/>
</LinearLayout>
四、在Drawab里创建menu
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:checkableBehavior="single">
<item
android:id="@+id/favorite"
android:icon="@drawable/ic_menu_news"
android:checkable="true"
android:title=" 新闻"/>
</group>
<item
android:id="@+id/wallet"
android:icon="@drawable/ic_btn_love"
android:title=" 图片"/>
<item
android:id="@+id/photo"
android:icon="@mipmap/ic_launcher"
android:title=" 视频"/>
<item
android:id="@+id/dress"
android:icon="@mipmap/ic_launcher"
android:title=" 装扮"/>
<item
android:id="@+id/file"
android:icon="@drawable/ic_add"
android:title=" 收藏"/>
<item
android:id="@+id/meinv"
android:icon="@drawable/chat"
android:title=" 美女陪聊"/>
<item
android:id="@+id/qita"
android:icon="@drawable/ic_menu_other"
android:title=" 其他服务"/>
<item
android:title=" 设置"/>
<item
android:id="@+id/yejian"
android:icon="@drawable/night"
android:title=" 夜间模式"/>
<item
android:id="@+id/guanyu"
android:icon="@mipmap/ic_launcher"
android:title=" 关于"/>
<item
android:id="@+id/shezhi"
android:icon="@mipmap/ic_launcher"
android:title=" 设置"/>
</menu>
五、在Activity中
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private DrawerLayout drawerLayout;
private SystemBarTintManager tintManager;
private NavigationView navigationView;
ImageView menu;
private View headerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initWindow();
drawerLayout = (DrawerLayout) findViewById(R.id.activity_na);
navigationView = (NavigationView) findViewById(R.id.nav);
menu= (ImageView) findViewById(R.id.main_menu);
//获取头布局
headerView = navigationView.getHeaderView(0);
headerView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
});
// View headerView2 = navigationView.getHeaderView(1);//获取头布局
menu.setOnClickListener(this);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.favorite:
Intent intent = new Intent(MainActivity.this, MainActivity.class);
startActivity(intent);
break;
case R.id.wallet :
Intent intent2 = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent2);
break;
case R.id.photo :
Intent intent3 = new Intent(MainActivity.this, MainActivity3.class);
startActivity(intent3);
break;
case R.id.dress:
Intent intent4 = new Intent(MainActivity.this, MainActivity4.class);
startActivity(intent4);
break;
case R.id.file :
Intent intent5 = new Intent(MainActivity.this, MainActivity5.class);
startActivity(intent5);
break;
case R.id.meinv :
Intent intent6 = new Intent(MainActivity.this, MainActivity6.class);
startActivity(intent6);
break;
case R.id.qita :
Intent intent7 = new Intent(MainActivity.this, MainActivity8.class);
startActivity(intent7);
break;
case R.id.yejian :
Intent intent8 = new Intent(MainActivity.this, MainActivity9.class);
startActivity(intent8);
break;
case R.id.guanyu :
Intent intent9 = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent9);
break;
}
Toast.makeText(MainActivity.this,item.getTitle().toString(),Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawer(navigationView);
return true;
}
});
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.main_menu://点击菜单,跳出侧滑菜单
if (drawerLayout.isDrawerOpen(navigationView)){
drawerLayout.closeDrawer(navigationView);
}else{
drawerLayout.openDrawer(navigationView);
}
break;
}
}
private void initWindow() {//初始化窗口属性,让状态栏和导航栏透明
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
tintManager = new SystemBarTintManager(MainActivity.this);
int statusColor = Color.parseColor("#1976d2");
tintManager.setStatusBarTintColor(statusColor);
tintManager.setStatusBarTintEnabled(true);
}
}
}