Android DrawerLayout简单使用

DrawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说DrawerLayout是因为第三方控件如MenuDrawer等的出现之后,Google借鉴而出现的产物。DrawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(DrawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(需要使用者自己实现)。

DrawerLayout使用

DrawerLayout使用比较简单,在布局文件中使用DrawerLayout进行设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dlyt_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!-- 内容 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/tv_content"
android:text="content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</FrameLayout>

<!-- 左边菜单 -->
<FrameLayout
android:background="@color/colorAccent"
android:layout_gravity="start"
android:layout_width="200dp"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/tv_left_menu"
android:text="left menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</FrameLayout>

<!-- 右边菜单 -->
<FrameLayout
android:background="@color/colorAccent"
android:layout_gravity="end"
android:layout_width="200dp"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/tv_right_menu"
android:text="right menu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</FrameLayout>
</android.support.v4.widget.DrawerLayout>

在DrawerLayout布局中有三个元素:

  • View主体
  • 左边菜单:使用android:layout_gravity=”start” 设置
  • 右边菜单:使用android:layout_gravity=”end” 设置

DrawerLayout中部分API介绍

(1)isDrawerOpen(@EdgeGravity int drawerGravity):判断菜单是否打开

传入参数:
GravityCompat.START: 左边菜单是否打开
GravityCompat.END: 右边菜单是否打开

(2)openDrawer(@EdgeGravity int gravity):打开菜单

传入参数:
GravityCompat.START: 打开左边菜单
GravityCompat.END: 打开右边菜单

(3)closeDrawer(@EdgeGravity int gravity):关闭菜单

传入参数:
GravityCompat.START: 关闭左边菜单。
GravityCompat.END: 关闭右边菜单。

(4)addDrawerListener(@NonNull DrawerListener listener): 添加监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//添加监听
DrawerLayout.addDrawerListener(new DrawerViewListener());
private class DrawerViewListener implements DrawerLayout.DrawerListener {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
//滑动时调用
}

@Override
public void onDrawerOpened(View drawerView) {
//打开菜单时调用
}

@Override
public void onDrawerClosed(View drawerView) {
//关闭菜单时调用
}

@Override
public void onDrawerStateChanged(int newState) {
//菜单状态改变时调用
}
}

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :