笔记116--DrawerLayout

原创 2015年07月08日 10:45:56

一、DrawerLayout基本用法

1、这是个啥玩意

抽屉布局,手势滑动或者点击按钮,出来一个侧滑菜单。其实截图最好~就不截~

2、这玩意能干啥

可以支持左边画出菜单,或者右边画出菜单,也可以左右菜单同时存在。

3、这玩意怎么用
1)布局文件

DrawerLayout作为根布局。第一个子布局是要显示的主界面,第二个子布局是侧滑菜单,第三个自布局也是侧滑菜单(可省略)。

注意:

必须指定第二个子布局和第三个子布局的layout_gravity属性为left或right。

第二个子布局和第三个子布局不要太大,不然全屏了体现不出效果来。

<android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <!-- The main content view -->
        <!-- main content must be the first element of DrawerLayout because it will be drawn first and drawer must be on top of it -->

        <LinearLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/tv1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="100dp"
                android:text="@string/hello" />

            <TextView
                android:id="@+id/tv2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="all"
                android:text="@string/web_url"
                android:textColor="#3A9FF7" />

            <Button
                android:id="@+id/btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="12121" />
        </LinearLayout>

        <!-- The navigation drawer -->

        <ListView
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:background="#111"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp" />

        <LinearLayout
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:background="#111" >

            <TextView
                android:id="@+id/tvurl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/web_url" />
        </LinearLayout>
</android.support.v4.widget.DrawerLayout>
2)方法介绍

a. mDrawerLayout.openDrawer(Gravity.RIGHT);

打开侧滑菜单。此参数与布局文件中指定的layout_gravity必须相同。

b.mDrawerLayout.closeDrawers();

关闭所有侧滑菜单。

c.mDrawerLayout.closeDrawer(gravity);

关闭指定侧滑菜单。

d.setDrawerListener()

监听菜单的打开关闭事件。

4、历史遗留问题

之前有个SlidingDrawer,在api 17中被弃用了。

二、ActionBarDrawerToggle基本用法


Material Design学习笔记之Toolbar+DrawerLayout+PagerSlidingTabStrip

A simple implementation for toolbar, drawerlayout and pagerslidingtabstrip.

第一行代码笔记 DrawerLayout 和NavigationView实现侧滑抽屉布局

实现效果图: 实现步骤: 第一步:先在gradle添加这两个 // 使用nevigationview compile 'com.android.support:desig...

MaterialDesign学习笔记1:DrawerLayout+NavigationView实现抽屉效果

DrawerLayout+NavigationView实现抽屉效果 Google I/O 2015 给大家带来了Android Design Support Library,一直对Material D...
  • TangVim
  • TangVim
  • 2016年09月24日 16:24
  • 884

Android侧边栏DrawerLayout实现问题笔记

关于DrawerLayout实现的侧边栏大家可以去Google官网查询,已经很完善了。本章只记录一些实现过程中遇到的问题,以后有时间会发布一篇复杂的DrawerLayout框架。 遇到的问题: 1...
  • my9074
  • my9074
  • 2015年04月14日 16:53
  • 750

Material Design学习笔记之Toolbar+DrawerLayout

Toolbar+DrawerLayout

HF116F-G 说明书

  • 2017年12月02日 14:40
  • 127KB
  • 下载

ME116 计算机应用授课大纲

  • 2011年04月03日 18:12
  • 312KB
  • 下载

NYOJ 116 树状数组 基本用法(单点更新,区间求和)

士兵杀敌(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经...
  • naipp
  • naipp
  • 2016年07月12日 17:25
  • 189

javascript116(英文)

  • 2007年08月04日 14:19
  • 4.88MB
  • 下载

C#116美丽的眼睛 源代码.

  • 2016年12月17日 11:30
  • 45KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:笔记116--DrawerLayout
举报原因:
原因补充:

(最多只允许输入30个字)