DrawerLayout侧滑菜单、Toolbar和沉浸式状态栏的使用

  最近在开发中需要用到侧滑菜单,以前使用的SlidingMenu,但似乎已经被Google淘汰了(过时了),于是乎使用了DrawerLayout来实现,既然是在项目使用的,那么Toolbar和沉浸式状态栏也是要配合使用的,这里做一下记录。
  我们先来看一看效果,这里是用模拟器实现的,效果不太好,真机上没问题。
这里写图片描述

一、沉浸式状态栏其实挺简单的,网上也很多,为了兼容低版本的手机可以先通过判断版本再来设置,还有一些写好的工具类,一句话就可以实现了,这里使用的是style.xml来设置主题实现的。

    < style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        < !-- Customize your theme here. -->
        < item name="colorPrimary">@color/colorPrimary< /item>
        < item name="colorPrimaryDark">@color/colorPrimaryDark< /item>
        < item name="colorAccent">@color/colorAccent< /item>
        < !--全应用都只允许竖屏-->
        < item name="android:screenOrientation">portrait< /item>
    < /style>

然后是colors.xml

    < !--主题颜色-->
    < color name="colorPrimary">#FF8A00< /color>
    < color name="colorPrimaryDark">#FF8A00< /color>
    < color name="colorAccent">#FF8A00< /color>
    然后给应用设置上主题就可以了。

二、Toolbar
在xml中写上布局文件

   	< LinearLayout
			android:layout_width="match_parent"
			android:layout_height="match_parent"
			android:orientation="vertical">
		< android.support.v7.widget.Toolbar
				android:id="@+id/toolbar"
				android:layout_width="match_parent"
				android:layout_height="wrap_content"
				android:background="@color/colorPrimary"
				android:minHeight="?attr/actionBarSize">
		< /android.support.v7.widget.Toolbar>
	< /LinearLayout>

然后在代码中获取控件即可。
三、DrawerLayout
也是在xml写上布局,这里贴出完整布局:

< ?xml version="1.0" encoding="utf-8"?>
< android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                        xmlns:app="http://schemas.android.com/apk/res-auto"
                                        android:id="@+id/menu_dl"
                                        android:layout_width="match_parent"
                                        android:layout_height="match_parent">

	< LinearLayout
			android:layout_width="match_parent"
			android:layout_height="match_parent"
			android:orientation="vertical">

		< android.support.v7.widget.Toolbar
				android:id="@+id/toolbar"
				android:layout_width="match_parent"
				android:layout_height="wrap_content"
				android:background="@color/colorPrimary"
				android:minHeight="?attr/actionBarSize">
		< /android.support.v7.widget.Toolbar>

	< /LinearLayout>

	< android.support.design.widget.NavigationView
			android:id="@+id/menu_nv"
			android:layout_width="match_parent"
			android:layout_height="match_parent"
			android:layout_gravity="start"
			app:headerLayout="@layout/layout_navigation"
			app:menu="@menu/menu_user_center_navigation">
	< /android.support.design.widget.NavigationView>

< /android.support.v4.widget.DrawerLayout>

下面给出DrawerLayout的主要监听事件:

/*
         *为抽屉菜单设置Item点击监听事件
         */
		mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
			@Override
			public boolean onNavigationItemSelected(@NonNull MenuItem item) {
				switch (item.getItemId()){
					//个人编辑
					case R.id.nav_user_center_item:
						// 改变item选中状态
						item.setChecked(true);
						Toast.makeText(MainActivity.this,"个人编辑",Toast.LENGTH_LONG).show();
						break;
					//密码修改
					case R.id.nav_change_pwd_item:
						// 改变item选中状态
						item.setChecked(true);
						Toast.makeText(MainActivity.this,"密码修改",Toast.LENGTH_LONG).show();
						break;
					//版本更新
					case R.id.nav_version_update_item:
						// 改变item选中状态
						item.setChecked(true);
						Toast.makeText(MainActivity.this,"版本更新",Toast.LENGTH_LONG).show();
						break;
					//关于
					case R.id.nav_about_item:
						// 改变item选中状态
						item.setChecked(true);
						Toast.makeText(MainActivity.this,"关于",Toast.LENGTH_LONG).show();
						break;
					//退出登录
					case R.id.nav_quit_item:
						// 改变item选中状态
						item.setChecked(true);
						Toast.makeText(MainActivity.this,"退出登录",Toast.LENGTH_LONG).show();
						break;
				}
				//关闭抽屉菜单
				mDrawerLayout.closeDrawers();
				return false;
			}
		});
下面给出完整的demo下载地址:
http://download.csdn.net/detail/u014727709/9738851
转载自 :http://blog.csdn.net/u014727709/article/details/54574541
欢迎start,欢迎评论,欢迎指正
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想你依然心痛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值