1. 滑动菜单--DrawerLayout

    滑动菜单就是把一些菜单选项隐藏起来,而不是放置主屏幕中,然后可以通过滑动的方式将菜单显示出来,具有非常的画面效果,就是类似侧边滑动。

例子:需要上一次的Toolbar,省略的内容参考Android——MaterialDesign之一Toolbar

<android.support.v4.widget.DrawerLayout

...

android:id="@+id/drawer_layout">

<FrameLayout>

...

</FrameLayout>

 

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:textSize="30sp"
    android:background="#14e163"
    android:text="这是一个菜单 menu"/>

 

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

  详解:其中的android:layout_gravity="start"必须指定(包括left、right),这样就会有非常流畅的滑动菜单,还有Material Design 建议在Toolbar的左边加入一个导航按钮,通过点击也能将菜单的内容展示出来。防止用户不知道在屏幕的左侧还是右侧。

MainActivity.class

private DrawerLayout drawerLayout;

...

//侧滑菜单
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

protected void onCreate(Bundle savedInstanceState) {

...
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
     actionBar.setDisplayHomeAsUpEnabled(true);
     actionBar.setHomeAsUpIndicator(R.mipmap.return_item);
}

}

..

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()){

...

case android.R.id.home:
     drawerLayout.openDrawer(GravityCompat.START);
     break;
default:

}

return true;
}

  详解:其中调用了actionBar的setDisplayHomeAsUpEnabled()方法让导航按钮显示出来,setHomeAsUpIndicator()方法设置一个导航按钮图标。最后在onOptionsItemSelected()方法中对HomeAsUp按钮进行事件处理,调用了drawerLayoutopenDrawer()方法将滑动菜单展示出来,GravityCompat.START来保证这里的行为和XML中定义一致

结果如图:

Android——MaterialDesign之二DrawerLayout的更多相关文章

  1. Android——MaterialDesign之三NavigationView

    NavigationView的使用 这里我们来讲讲在Android5.0之后推出的NavigationView的具体使用方式.和普通的侧拉菜单制作方式一样,首先所有的东西还是都放在一个DrawerLa ...

  2. [Android]开源中国源码分析之二---DrawerLayout

    从启动界面到主界面之后的效果如图所示,采用的是v4包下的DrawerLayout, activity_main.xml文件如下: <!-- A DrawerLayout is intended ...

  3. android.support.v4.widget.DrawerLayout使用

    activity_main.xml布局如下: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas ...

  4. Android仿微信二维码扫描

    转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...

  5. Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误

    嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...

  6. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  7. Android进阶笔记06:Android 实现扫描二维码实现网页登录

    一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...

  8. android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)

    写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载   zbarLib编译project  project下载0积分 bug 在2.3的系统中Hol ...

  9. 【转】android官方侧滑菜单DrawerLayout详解

    原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html drawerLayout是Support ...

随机推荐

  1. Tesseract-OCR识别

    参考 https://studygolang.com/topics/4527/comment/13217 安装版Windows下链接: https://digi.bib.uni-mannheim.de ...

  2. [SDOi2012]吊灯

    嘟嘟嘟 这题想了半天,搞出了一个\(O(10 * d * n)\)(\(d\)为\(n\)的约数个数)的贪心算法,就是能在子树内匹配就在子树内匹配,否则把没匹配的都交给父亲,看父亲能否匹配.交上去开了 ...

  3. ActiveMQ发布订阅模式 转发 https://www.cnblogs.com/madyina/p/4127144.html

    ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...

  4. day25 Python四个可以实现自省的函数,反射

    python面向对象中的反射:通过字符串的形式操作对象相关的属性.python中的一切事物都是对象(都可以使用反射) 四个可以实现自省的函数 下列方法适用于类和对象(一切皆对象,类本身也是一个对象) ...

  5. 极端恢复时用到的几个隐藏参数 Oracle hidden corruption recovery parameters

    Oracle hidden corruption recovery parameters Note: Oracle hidden parameters are undocumented and uns ...

  6. Flink 集群运行原理兼部署及Yarn运行模式深入剖析

    1 Flink的前世今生(生态很重要) 原文:https://blog.csdn.net/shenshouniu/article/details/84439459 很多人可能都是在 2015 年才听到 ...

  7. ODOO(ERP源码安装)

    cat /etc/centos-release CentOS Linux release 7.4.1708 (Core) uname -r 3.10.0-693.el7.x86_64 IP:192.1 ...

  8. Spark笔记-gz压缩存储到HDFS【转】

    参考:http://blog.csdn.net/u010454030/article/details/69291663 mergedRDD.saveAsTextFile(outputPath, cla ...

  9. java单例模式总结

    目录 一. 饿汉模式(静态初始化) 二.双重检查锁(dcl) 三. 延迟占位类 四.枚举实现 最后 常见安全的单例实现代码和自己的一点理解. 一. 饿汉模式(静态初始化) class Singleto ...

  10. C# 下载文件

    最近一段时间,真的是太忙太忙了!经历了自我毕业以来最忙碌的一个项目! 说起这个项目,我有万千感慨 且不说技术能力,也无需谈论项目需求.单就项目压力,日常加班,周六日补班而言,我相信很多人是扛不住的! ...