DrawerLayout 是谷歌官方推出的侧滑控件,使用时首先添加相关的包并将DrawerLayout作为跟布局:
implementation 'com.android.support:design:26.1.0'
DrawerLayout主要分为两部分内容:
1.主内容区域,即当前页面显示的内容.(注:主内容区域必须为跟布局下第一个子视图内容)
2.侧滑菜单区域.可以左滑和右滑,跟自己需求定.(注:侧滑菜单需设置android:gravite_layout = "start"属性,左侧滑动建议使用start,非left,高度设置为match_parent,宽度视需求而定)
例:
布局文件:
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" tools:openDrawer="start" android:id="@+id/drawerLayout_slide"> <!-- 主内容视图 --> <include layout="@layout/activity_slide_main"/> <!-- 左侧滑动视图 --> <LinearLayout android:id="@+id/linearLayout_left_slide" android:layout_gravity="start" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:background="@color/colorPrimary" android:orientation="vertical" android:padding="@dimen/one_zero_dp"> <de.hdodenhof.circleimageview.CircleImageView android:id="@+id/left_icon" android:layout_width="@dimen/five_zero_dp" android:layout_height="@dimen/five_zero_dp" android:src="@mipmap/ic_launcher_round" android:layout_gravity="center_horizontal"/> </LinearLayout> </android.support.v4.widget.DrawerLayout>该布局下即可实现菜单侧滑效果,从左侧边缘向右滑动即可看到滑出的菜单
除此外我们还可以通过点击按钮实现菜单的弹出:
在类文件中设置:
drawerLayout.openDrawer(Gravity.START);关闭使用:
drawerLayout.closeDrawer(linearLayout_left);
对DrawerLayout的监听可使用
drawerLayout.addDrawerListener(new 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) { } });这样你就可以在菜单展开与隐藏发生的时候做一些希望做的事情