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

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

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

<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"):

<!-- 左边的侧滑箭头指示 是否翻转,颜色-->
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
 <item name="spinBars">true</item>
 <item name="color">@android:color/white</item>
</style>

接下来设置Toolbar和DrawerLayout:

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);

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • android实现左右侧滑菜单效果

    在android开发中,左右侧滑菜单的开发已成为我们现在开发的必备技术之一,再次之前,我没有做过相类似的demo,但是项目的开发有要求有这样的效果,而且大家都知道,虽然网上由开源的代码,但是不仅种类多,看着一个头两个大,而且代码不好分离.因此我们无法简化成自己的demo,为此,还查阅了很多别人的资料,最后做出了自己想要的效果,具体效果如下所示: 图1 左边菜单 图2 右边菜单 今天要做的是把两个效果结合在一起,左右侧滑菜单 话不多说,直接上代码: activity_main.xml: <Line

  • Android使用自定义控件HorizontalScrollView打造史上最简单的侧滑菜单

    侧滑菜单在很多应用中都会见到,最近QQ5.0侧滑还玩了点花样~~对于侧滑菜单,一般大家都会自定义ViewGroup,然后隐藏菜单栏,当手指滑动时,通过Scroller或者不断的改变leftMargin等实现:多少都有点复杂,完成以后还需要对滑动冲突等进行处理~~今天给大家带来一个简单的实现,史上最简单有点夸张,但是的确是我目前遇到过的最简单的一种实现~~~ 1.原理分析 既然是侧滑,无非就是在巴掌大的屏幕,塞入大概两巴掌大的布局,需要滑动可以出现另一个,既然这样,大家为啥不考虑使用Android

  • Android Drawerlayout实现侧滑菜单效果

    本文实例为大家分享了Drawerlayout侧滑菜单的具体代码,供大家参考,具体内容如下 1.Drawerlayout的xml布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and

  • Android滑动优化高仿QQ6.0侧滑菜单(滑动优化)

     推荐阅读:Android使用ViewDragHelper实现仿QQ6.0侧滑界面(一) 但是之前的实现,只是简单的可以显示和隐藏左侧的菜单,但是特别生硬,而且没有任何平滑的趋势,那么今天就来优化一下吧,加上平滑效果,而且可以根据手势滑动的方向来判断是否是显示和隐藏. 首先先来实现手势判断是否隐藏和显示 这里就要用到了一个方法了,如下: 这个是ViewDradHelper里面的方法: /** * 当view被释放的时候处理的事情(松手) * * @param releasedChild 被释放的

  • Android使用DrawerLayout实现双向侧滑菜单

    前言   在android开发中,很多的app都有使用侧滑菜单,有的是自定义控件来实现侧滑菜单,但是android给我们提供了DrawerLayout类来实现侧滑菜单,侧滑效果很好,今天我就说说怎么去使用它来实现侧滑菜单. 实现   我们先来看一下效果图: 这里我们实现的双向侧滑菜单,在界面上部加入了两个按钮,点击就会打开菜单或者关闭菜单,当然也可以自己去滑动. 布局文件的代码: <LinearLayout xmlns:android="http://schemas.android.com

  • Android侧滑菜单控件DrawerLayout使用详解

    DrawerLayout是Android V4包下一个带有侧滑功能的布局控件,可以根据手势展开与隐藏侧边栏,也可以随着侧边栏的点击改变主界面区的内容.并且只需要按照DrawerLayout规定的布局格式进行布局,即可实现左右侧滑效果. 一.约定的抽屉布局 DrawerLayout的布局一般分为三个部分:第一部分为主界面内容布局,第二部分为左边侧滑界面布局,第三部分为右边侧滑界面布局.那么系统是怎么区分左边侧滑和右边侧滑的代码块的呢?请注意DrawerLayout布局中侧滑部分的代码块必须指定an

  • jQuery+CSS实现一个侧滑导航菜单代码

    侧滑菜单在网站设计中应用比较广泛,在许多网站上都可以看到此种类型的菜单.它可以展示重点信息,使其更有可读性和美观性,满足用户体验价值! 今天小编给大家展示如何使用jquery和css实现侧滑菜单. 效果展示      源码下载 为了建立导航菜单,让我们先看看html结构: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title&g

  • Android实现原生侧滑菜单的超简单方式

    先来看看效果图 当你点击菜单可以更改图标,例如点击happy,首页就会变一个笑脸,这个实现的过程超级简单 你需要使用ToolBar与DrawableLayout两个比较新的控件 首先要写三个xml布局文件,我这里的布局文件是使用了include标签嵌入的,代码如下 headbar_toolbar.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar

  • android侧滑菜单控件DrawerLayout使用方法详解

    drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现). 使用步骤: 创建一个DrawerLayout 为了添加导航抽屉,你需要在你的布局界面中声明一个DrawerLayo

  • Android中DrawerLayout实现侧滑菜单效果

    众所周知,android里面我们很熟悉的一个功能,侧滑菜单效果在以前我们大部分都是用的slidingmenu这个开源框架,自从谷歌官方新出的一个DrawerLayout控件之后,越来越多的应用开始使用谷歌的官方的控件写这个效果了. 话不多说,先来发图以表我滴诚意: 开始写代码 DrawerLayout 是v4包里面的,所以项目里面需要添加v4包,具体怎么添加就不多说了, NavigationView需要在build.gradle里面添加compile 'com.android.support:d

随机推荐