DrawerLayout 基本使用

我们先来看一下布局

<android.support.v4.widget.DrawerLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/dl"><LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><android.support.design.widget.TabLayout android:layout_height="50dp"android:layout_width="match_parent"android:id="@+id/tb"></android.support.design.widget.TabLayout><android.support.v4.view.ViewPager android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/vp"></android.support.v4.view.ViewPager></LinearLayout><LinearLayoutandroid:layout_width="100dp"android:layout_height="match_parent"android:layout_gravity="start"android:orientation="horizontal"android:background="#ffccff"><TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="aaa"/></LinearLayout>
</android.support.v4.widget.DrawerLayout> 

在 DrawerLayout 里包括两个子布局 第一个是主页布局 第二个是侧滑布局

注意:

第一个布局可以是任意布局 但必须设置成 全屏显示,

第二个布局可以任意宽度 但必须设置 android:layout_gravity="start" Start 表示从左边显示 End 表示从右边显示

然后重启一下是不是可以从左边滑出菜单来了,就是这么 easy

DrawerLayout 和 ToolBar 的绑定

首先我们要在上面的布局里 DrawerLayout 上填加一个布局 ToolBar。

<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content"><android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent"android:layout_height="?android:attr/actionBarSize"android:background="?attr/colorPrimary"app:layout_scrollFlags="scroll|enterAlways"/>
</android.support.design.widget.AppBarLayout> 

第一步初始化 ToolBar 控件

toolbar = (Toolbar) findViewById(R.id.toolbar);

dl = (DrawerLayout) findViewById(R.id.dl);

setSupportActionBar(toolbar);

第二步显示箭头

在这的时候就可以看到我们的图标了,

ActionBar actionBar = getSupportActionBar();

//设置当前的控件可用

actionBar.setDisplayHomeAsUpEnabled(true);

actionBar.setHomeButtonEnabled(true);

actionBar.setDisplayShowTitleEnabled(true);

第三步 关联 DrawerLayout

//第一个参数 activity 第二个参数 drawlayout

//第三个参数 Toolbar 第四个和第五个是打开和关闭的文字 toggle = new ActionBarDrawerToggle(this, dl, toolbar,R.string.aa, R.string.bb);

//该方法会自动和 ToolBar 关联 toggle.syncState();

第四部设置监听(给我们的 DrawerLayout 设置监听)

dl.addDrawerListener(new DrawerLayout.DrawerListener(){@Override public void onDrawerSlide (View drawerView,float slideOffset){toggle.onDrawerSlide(drawerView, slideOffset);}@Override public void onDrawerOpened (View drawerView){toggle.onDrawerOpened(drawerView);}@Override public void onDrawerClosed (View drawerView){toggle.onDrawerClosed(drawerView);}@Override public void onDrawerStateChanged ( int newState){toggle.onDrawerStateChanged(newState);}});

第五部 响应事件

@Override

public boolean onOptionsItemSelected(MenuItem item) {return toggle.onOptionsItemSelected(item);}

转载于:https://www.cnblogs.com/yanglanwan/p/11299274.html

MaterialDesign 之 DrawerLayout相关推荐

  1. MaterialDesign学习篇(二),Toolbar、DrawerLayout的使用

    什么是Toolbar Toolbar是应用的内容的标准工具栏,可以说是Actionbar的升级版,两者不是独立关系,要使用Toolbar还是得跟ActionBar扯上关系的.相比Actionbar,T ...

  2. MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏

    本文将介绍使用Google最新推出规范式设计中的NavigationView和DrawerLayout结合实现侧滑菜单栏效果,NavigationView是android-support-design ...

  3. 基于MaterialDesign设计风格的妹纸app的简单实现

    代码地址如下: http://www.demodashi.com/demo/11644.html *今天看了郭神的第二行代码,深深的被MaterialDesign的设计风格所吸引,然后就照例做了一个小 ...

  4. android设计风格是什么软件下载,基于MaterialDesign设计风格的妹纸app的简单实现

    今天看了郭神的第二行代码,深深的被MaterialDesign的设计风格所吸引,然后就照例做了一个小Demo,希望多多支持,图片资源来源于网络.先附上我的源码地址:https://github.com ...

  5. MaterialDesign学习篇(五),使用SearchView的正确姿势

    介绍 大多APP都具有搜索功能,但是大部分都是在标题栏中放置搜索的图标或者是不可输入的EditText,当点击的时候,开启另外一个界面进行搜索,但是网易云音乐在搜索本地音乐的时候,点击搜索按钮,就会出 ...

  6. Android 侧滑栏 (DrawerLayout)

    DrawerLayout 实现侧滑栏非常简单 支持左滑动以及右滑动 默认滑动出来侧滑栏 DrawerLayout  需要引入support:appcompat 库,一般创建项目的时候自带的有,这个库就 ...

  7. android DrawerLayout 改变系统默认的灰色

    在使用原生的侧滑栏的时候系统默认的主页显示是灰色的, 想要去掉这个灰色的颜色值 可以设置其颜色值为透明 假如定义 DrawerLayout drawerLayout 那么设置颜色透明的时候可以调用se ...

  8. Android ActionBarDrawerToggle、DrawerLayout、ActionBar 结合

    ActionBarDrawerToggle是一个开关.用于打开/关闭DrawerLayout抽屉 ActionBarDrawerToggle 提供了一个方便的方式来配合DrawerLayout和Act ...

  9. Android -- DrawerLayout

    抽屉效果的导航菜单 喜欢知乎的都应该装的用知乎日报吧~这里指Android的不是IOS的.知乎日报的导航菜单就是用DrawerLayout实现的. 觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个 ...

  10. android侧滑布局,Android布局控件DrawerLayout实现完美侧滑效果

    drawerLayout其实是一个布局控件,跟LinearLayout等控件是一样的,但是drawerLayout带有滑动的功能.只要按照drawerLayout的规定布局方式写完布局,就能有侧滑的效 ...

最新文章

  1. 使用 git 管理 portage tree
  2. qq聊天框java_jQuery实现简单QQ聊天框
  3. POJ 1094 Sorting It All Out (拓扑排序)
  4. 焦油坑和人月神话--人月笔记1
  5. 第04课:深度学习框架 PyTorch
  6. ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)
  7. 雷军:小米推动山寨机灭亡;苹果回应禁止第三方换电池;Javascript 引擎 V8 7.7 发布 | 极客头条...
  8. 深度学习TF—13.对抗生成网络—GAN
  9. 使用R包qpdf用一行代码将多个pdf合并为一个pdf
  10. 7位双极性序列 matlab,matlab仿真-bpsk调制
  11. 数据分析 --- 如何处理脏数据
  12. 前端电子时钟字体引入
  13. 阿里云移动推送 - 异常记录
  14. 【fk_index】外键中有无索引的区别
  15. 浅谈区块链技术应用场景
  16. python壁纸程序代码_40行Python代码+奇技淫巧搞定专属电脑壁纸库
  17. html5画布画出折线图,canvas 画出动态折线图
  18. AHB2APB 同步桥的设计代码(Verilog)
  19. 手机也能拍出艺术品?大师镜头,“真”突破了不少
  20. 分布式电源接入对配电网的影响matlab程序(IEEE9节点系统算例)

热门文章

  1. 05月08日 学习列表
  2. mysql-查询一天,一周,一月,一年,以及mysql的基本日期函数
  3. 深入了解Java虚拟机
  4. usaco1.5.3(sprime)
  5. Spring——Java程序员的春天
  6. Java对数组的操作(二)—集合与数组的切换
  7. php中explode与split的区别
  8. SQL像数组一样处理字符串、分割字符串(标量值函数[用户自定义函数])
  9. Process Explorer 进程管理利器常用功能(中)
  10. VS2015 输出目录、中间目录、目标文件名、工作目录