原文地址:《使用Toolbar + DrawerLayout实现高大上菜单侧滑》 原创文章,码字不易,转载请注明原文出处,谢谢!
如果你有在关注一些遵循最新的Material Design设计规范的应用的话(如果没有,假设你有!),也许会发现有很多使用了看起来很舒服、很高大上的侧滑菜单动画效果,示例如下(via 参考2):
今天就来使用官方支持库来快速实现这类效果,需要使用到Toolbar和DrawerLayout,详细步骤如下:(如果你还不知道这两个Widget,先自己Google吧~)
1.首先需要添加appcompat-v7支持
如果是在Android Studio 1.0 RC4上创建的项目,默认已经添加了appcompat-v7支持了,如果不是最新版AS则需要在build.gradle中添加如下代码:
|
|
添加完成后需要同步一下gradle
2.添加Toolbar
由于Toolbar是继承自View,所以可以像其他标准控件一样直接主布局文件添加Toolbar,但是为了提高Toolbar的重用效率,可以在layout创建一个custom_toolbar.xml
代码如下:
|
|
说明:
-
android.support.v7.widget.Toolbar - 当然如果只在Lollipop中可以直接使用Toolbar而不需要加上v7支持
-
xmlns:app - 自定义xml命名控件,在AS中可以直接指定
res-auto
而不需要使用完整包名 -
android:background 和 android:minHeight 均可以在styles.xml中声明
2.添加DrawerLayout
和Toolbar类似,为了提高代码重用效率,可以在layout中创建一个custom_drawerlayout.xml
代码如下:
|
|
Drawerlayout标签中有两个子节点,一个是左边菜单,一个是主布局,另外需要在左边菜单起始位置设置为android:layout_gravity="start"
3.实现activity_main.xml
|
|
直接使用include标签,简洁明了
4.完善Java代码
|
|
5.当然比较重要还有styles.xml和colors.xml,具体如下
|
|
|
|
到此就实现了高大上菜单侧滑,最终效果如下(注:在Yosemite上貌似直接Record手机屏幕貌似不起作用,而且动画由于帧率原因无法实时,就先这样看吧~)
参考列表
欢迎大家关注我的微博和微信公众号,提出你的意见和建议,也可以直接在下面发表评论哦~
使用的过程中,请先把style和color resouse配置好,这些也是很重要的
还有就是修改状态栏颜色只有在android4.4以及以上的手机中才会有效果
![]() | ![]() |