APP开发架构类似网易云音乐、QQ这种侧滑效果的很多,看到过网上的诸多使用SlidingMenu实现此效果,但毕竟不是官方的,而且需要导包,它的功能也有局限性。DrawerLayout是很好的替代品。
一、先来看看官方文档解释
DrawerLayout充当窗口内容的顶层容器,允许交互式“抽屉”的观点,以从窗口的边缘拉出。
抽屉的定位和布局是使用控制
机器人:layout_gravity属性对应到您想要的抽屉,从出现的观点哪边儿的观点:左或右。(或者在启动支持布局方向平台版本/结束)。要使用DrawerLayout,定位你的主要内容视图的第一个孩子,宽度和高度
match_parent。添加抽屉为孩子意见的主要内容视图后,设置layout_gravity适当。抽屉通常使用match_parent的高度与宽度固定。
DrawerLayout.DrawerListener可以用来监测抽屉意见的状态和运动。避免进行昂贵的操作,如动画,因为它可能会导致口吃过程中的布局; 尝试在执行昂贵的操作STATE_IDLE状态。DrawerLayout.SimpleDrawerListener提供每个回调方法的默认/无操作实现。
二、再来看看继承关系

三、效果图(真实图和效果图)

说明:真实手机截图(改图来自网络)

说明:模拟器运行效果图(此图是模拟器,建议使用真机,效果更明显,尤其是状态栏)。

说明:实现的效果图 (此图是模拟器,建议使用真机,效果更明显,尤其是状态栏),设计的知识点:状态栏的设置,渐变效果;属性动画;TabLayout使用;最主要的DrawerLayout的使用。下面就来看代码片段:
四、代码部分
1,首页面的布局

说明:可以看到最外层是DrawerLayout,下面一层布局是RelativeLayout,再下面就是include包进来的布局,就是我们的侧滑出来的布局。这里折叠(折叠是为了截出完整的图)的布局第一部分RelativeLayout相当于Toolbar,折叠的第二部分布局ViewPager,就是底部TabLayout关联的ViewPager。
2、侧滑布局

说明:采用层布局形式,底部放一张图片,在代码中设置动画效果就很方便了;注意到这里在最外层加了一个tag属性,此属性在DrawerLayout监听判断时会用到。同样这里也有被折叠的布局,RelativeLayout是个人信息布局;下面折叠的是ListView。
3、布局完了,看代码(MainActivity.java)
说明:这是我们的主页面的左上角图标单击事件下的代码,控制侧边布局的开关。

说明:这是我们的侧边布局背景图片的动画代码,通过属性动画实现循环上下移动的效果。

说明:关键部分,左侧DrawerLayout监听,在滑动的过程中,不断改变状态栏的透明度,并设置内容的移动,以及首页导航图标的渐变。
4、使用需引入包
compile 'com.android.support:design:25.0.1'
五、总结
虽然使用Android Studio工程模板,有侧滑的效果,但是默认的侧滑并不是这个效果,而且对于toolbar的使用根据需求不是很灵活。虽然此demo看起来没多少东西,但是用到的技术点却都是开发中常用的,故特此一文。
code小生:
demo已上传至github,在公众号里有链接。感谢阅读!
