谷歌官方提供的抽屉布局,可包含多个子view,第一个子view是主内容布局,其余为抽屉布局
抽屉布局通过layout_gravity指定滑出方向(上下左右)
手动打开关闭:
打开:
drawer.openDrawer();
括号里可传参数指定打开哪个抽屉,不传全部打开.参数有:
GravityCompat.START、GravityCompat.END、GravityCompat.TOP、GravityCompat.BOTTOM
关闭:
drawer.closeDrawer();
括号里可传参数指定关闭哪个抽屉,不传全部关闭,参数同上
监听:
drawer.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(@NonNull View view, float v) {
Log.i("---", "滑动中");
}
@Override
public void onDrawerOpened(@NonNull View view) {
Log.i("---", "打开");
}
@Override
public void onDrawerClosed(@NonNull View view) {
Log.i("---", "关闭");
}
@Override
public void onDrawerStateChanged(int i) {
Log.i("---", "状态改变");
}
});
禁止手势滑动:
// 禁止手势滑动
drawer.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
//打开手势滑动
mDrawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
判断是否打开:
drawer.isDrawerOpen(GravityCompat.START);
括号里参数可更换为其他方向
设置全屏:
ViewGroup.LayoutParams drawerParams =drawer.getLayoutParams();
drawerParams.height =QMUIDisplayHelper.getScreenHeight(activity);
drawerParams.width =QMUIDisplayHelper.getScreenWidth(activity);
drawer.setLayoutParams(drawerParams);