Android——MaterialDesign之二DrawerLayout
滑动菜单--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按钮进行事件处理,调用了drawerLayout的openDrawer()方法将滑动菜单展示出来,GravityCompat.START来保证这里的行为和XML中定义一致
结果如图:

Android——MaterialDesign之二DrawerLayout的更多相关文章
- Android——MaterialDesign之三NavigationView
NavigationView的使用 这里我们来讲讲在Android5.0之后推出的NavigationView的具体使用方式.和普通的侧拉菜单制作方式一样,首先所有的东西还是都放在一个DrawerLa ...
- [Android]开源中国源码分析之二---DrawerLayout
从启动界面到主界面之后的效果如图所示,采用的是v4包下的DrawerLayout, activity_main.xml文件如下: <!-- A DrawerLayout is intended ...
- android.support.v4.widget.DrawerLayout使用
activity_main.xml布局如下: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas ...
- Android仿微信二维码扫描
转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...
- Android反编译(二)之反编译XML资源文件
Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具 apktool http ...
- Android进阶笔记06:Android 实现扫描二维码实现网页登录
一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...
- android利用zbar二维码扫描-(解决中文乱码及扫描区域定义)
写在最前(这是对上一篇博文的问题做的更新[android利用zbar二维码扫描]) project下载 zbarLib编译project project下载0积分 bug 在2.3的系统中Hol ...
- 【转】android官方侧滑菜单DrawerLayout详解
原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html drawerLayout是Support ...
随机推荐
- 6.04-news_xpath3
from lxml import etree html = """ <html> <body> <ul> <li>1 &l ...
- Control4系统对接arduino
https://www.chowmainsoft.com/arduino int digitalState[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; v ...
- SpringBoot之静态资源放行
为了提高开发效率,编写对应的代码生成器.代码生成器主要有两个方面,一个是在线Web,另外一个是运行某个类. 使用的技术是SpringBoot+MyBatis-Plus+MySQL+JDK8. 在编写在 ...
- P3372 【模板】线段树 1
题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个 ...
- Gym101237C The Palindrome Extraction Manacher、SAM、倍增
传送门 假设字符串\(B,D\)满足\(|B| \geq |D|\),那么一定会有\(B=rev(D)+T\),其中\(T\)是一个回文串. 考虑枚举回文串\(T\)的中心\(p\),找到以\(p\) ...
- @vue/cli 3 打包文件读取绝对路径处理
@vue/cli 3 封装了 webpack.config.js,一般都在 vue.config.js 里面配置,官网不推荐在 webpack 的 output 处理,这里踩了一下坑,希望可以帮到后面 ...
- 在vue2.0中引用element-ui组件库
element-ui是由饿了么团队开发的一套基于 Vue 2.0 的桌面端组件库. 官网:http://element.eleme.io/ 安装 npm i element-ui -S 引用完整的el ...
- Dockerfile centos7_php5.6.36
Dockerfile: FROM centos:7 MAINTAINER www.ctnrs.com RUN yum install epel-release -y && \ yum ...
- 剑指Offer-- 二叉搜索树的后序遍历序列判断
版本1:C++ class Solution { public: bool VerifySquenceOfBST(vector<int> sequence) { ) return fals ...
- 新浪2017校园招聘---C++后台研发
一共10道题目,难度不大,就是题量大,时间短. 1. 编程 写一个函数,求出一字符串的所有排列. 2. 编程 实现一个在32位系统下把字符串转换成浮点数的函数 floa ...