Android双重抽屉效果(代码思路记录)

记录一下技术点:

实现效果就是点击按钮,侧边划出抽屉效果布局。点击抽屉布局的按钮,继续从侧边划出抽屉效果子布局。(但是禁用侧滑)

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);
}

嵌套的布局里写的一样。

猜你喜欢

转载自blog.csdn.net/qq_24712507/article/details/105952205