记录一下技术点:
实现效果就是点击按钮,侧边划出抽屉效果布局。点击抽屉布局的按钮,继续从侧边划出抽屉效果子布局。(但是禁用侧滑)
gradle导包:implementation 'com.android.support:design:28.0.0'
xml最外层布局:androidx.drawerlayout.widget.DrawerLayout
抽屉控件:com.google.android.material.navigation.NavigationView
双层抽屉效果就是在NavigationView布局里再写一个NavigationView布局。这样当最外层抽屉消失的时候,子抽屉也会跟着进去。
子NavigationView可以放在FrameLayout里面统一管理。
Activity:
// DrawerLayout
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mNavView = (NavigationView) findViewById(R.id.nav_view);
// 设置drawerLayout不可滑动 - 可滑动 LOCK_MODE_UNLOCKED
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
mNavView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// item.setChecked(true);
// Toast.makeText(MainActivity.this, item.getTitle().toString(), Toast.LENGTH_SHORT).show();
mDrawerLayout.closeDrawer(mNavView);
return true;
}
});
点击按钮:
if (mDrawerLayout.isDrawerOpen(mNavView)){
mDrawerLayout.closeDrawer(mNavView);
}else{
mDrawerLayout.openDrawer(mNavView);
}
嵌套的布局里写的一样。