登录 立即注册
安币:

查看: 222|回复: 4

DrawerLayout结合Tollbar实现菜单侧滑效果,android drawerlayout

[复制链接]

449

主题

933

帖子

1977

安币

手工艺人

发表于 2018-3-13 10:32:12 | 显示全部楼层 |阅读模式

            

        本文实例为大家分享了drawerlayout结合tollbar实现菜单侧滑的具体代码,供大家参考,具体内容如下

        

2017120414050116.jpg

        drawerlayout(抽屉布局):谷歌官方的控件,可以简单的实现侧滑菜单;
此demo主要是drawerlayout结合toolbar实现侧滑左上角返回键实现动画效果,点击左上角返回键实现动画效果并且滑出滑入侧滑菜单;
xml布局文件:

[Java] 查看源文件 复制代码
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 xmlns:app="http://schemas.android.com/apk/res-auto" 
 tools:context="www.dld.com.drawerlayoutdemo.mainactivity" 
 android:orientation="vertical"> 
 
 <!--app:theme="@style/drawerarrowstyle"设置旋转样式(当drawerlayout滑出返回键有一个动画)--> 
 <android.support.v7.widget.toolbar 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:id="@+id/toolbar" 
  android:background="@android:color/holo_blue_dark" 
  app:theme="@style/drawerarrowstyle"/> 
 
 <android.support.v4.widget.drawerlayout 
  android:id="@+id/drawerlayout" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent"> 
  <!--主布局--> 
  <linearlayout 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" 
   android:background="#e5e5e5"> 
   <textview 
    android:gravity="center" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="主页面" 
    android:textsize="35sp"/> 
  </linearlayout> 
  <!-- 
  侧滑菜单 
  android:layout_gravity="start"从左边滑出 
  android:layout_gravity="end"从右边滑出 
  --> 
  <linearlayout 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" 
   android:background="#e5e5e5" 
   android:layout_gravity="start" 
   > 
   <textview 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="侧滑菜单" 
    android:gravity="center" 
    android:textsize="35sp"/> 
  </linearlayout> 
 </android.support.v4.widget.drawerlayout> 
 
</linearlayout> 

        布局文件非常简单,就是一个线性布局,上面是toolbar,下面是drawerlayout,抽屉布局里面放两个容器布局,上面的是主页面,下面的是菜单页面;

        想要实现左上角返回按钮的动画必须给toolbar设置样式(app:theme="@style/drawerarrowstyle"):

[Java] 查看源文件 复制代码
<!-- 左边的侧滑箭头指示 是否翻转,颜色--> 
<style name="drawerarrowstyle" parent="widget.appcompat.drawerarrowtoggle"> 
 <item name="spinbars">true</item> 
 <item name="color">@android:color/white</item> 
</style> 

        接下来设置toolbar和drawerlayout:

[Java] 查看源文件 复制代码
toolbar = (toolbar) findviewbyid(r.id.toolbar); 
mdrawerlayout= (drawerlayout) findviewbyid(r.id.drawerlayout); 
/***************************************toolbar设置****************************************/ 
//把布局中的toolbar当作actionbar 
setsupportactionbar(toolbar); 
//设置标题 
getsupportactionbar().settitle("颐众商城"); 
//设置返回键 
getsupportactionbar().setdisplayhomeasupenabled(true); 
 
/**********************************drawerlayout设置****************************************/ 
//第一步:创建返回键,并实现打开关/闭监听 
actionbardrawertoggle mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout, toolbar, 0, 0) { 
 @override 
 //打开drawer 
 public void ondraweropened(view drawerview) { 
  super.ondraweropened(drawerview);//开关状态改为opened 
 } 
 
 @override 
 //关闭drawer 
 public void ondrawerclosed(view drawerview) { 
  super.ondrawerclosed(drawerview);//开关状态改为closed 
 } 
}; 
 
//第二步:该方法会自动和actionbar关联, 将开关的图片显示在了action上,如果不设置,也可以有抽屉的效果,不过是默认的图标 
mdrawertoggle.syncstate(); 
//第三步:设置抽屉滑出来,和滑进去的监听 
mdrawerlayout.setdrawerlistener(mdrawertoggle); 

        点击打开链接免费下载源码



        

3

主题

9245

帖子

1810

安币

Android大神

Rank: 6Rank: 6

QQ达人

发表于 2018-3-13 23:20:07 | 显示全部楼层
感谢分享,安卓巴士有你更精彩:lol

0

主题

1万

帖子

2419

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-14 22:17:03 | 显示全部楼层
帮帮顶顶!!

62

主题

9578

帖子

926

安币

代码手工艺人

学海无涯

Rank: 4

QQ达人

发表于 2018-3-16 05:08:17 | 显示全部楼层
每次我都积极回帖的,想要安币~

0

主题

9134

帖子

2903

安币

Android大神

Rank: 6Rank: 6

发表于 2018-3-17 11:04:24 | 显示全部楼层
楼主威武,以后多发干货,多办活动~!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表