Android DrawerLayout简单使用

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

DrawerLayout使用

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

<?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): 添加监听

//添加监听
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) {
        //菜单状态改变时调用
    }
}

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/02/25/android-drawerlayout-easy-to-use/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Android DrawerLayout简单使用
DrawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说DrawerLayout是因为第三方控件如MenuDrawer等的出现之后,Google借鉴而出现的产物。Drawe……
<<上一篇
下一篇>>
文章目录
关闭
目 录