如何从一侧禁用抽屉布局?

时间:2014-01-20 11:47:19

标签: android android-layout navigation-drawer

我制作了一个双抽屉布局没有动作栏这样的东西:

Using Navigation Drawer without TitleBar or ActionBar

我的要求是当左边的抽屉打开时,禁用右边的抽屉。反之亦然。所以当左抽屉打开时,我正在隐藏右抽屉按钮。反之亦然,这很好。

但问题是,即使我隐藏了一个按钮(左或右),抽屉仍然会以水平滑动(从右向左滑动)打开。 那么如何防止抽屉打开?

因为我没有使用ActionBarDrawerToggle这样的内置函数(如

setOnDrawerOpenListener
setOnDrawerCloseListener

不可用。

请帮助!!

2 个答案:

答案 0 :(得分:16)

这可能对你有帮助......

    drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {

        @Override
        public void onDrawerStateChanged(int arg0) {

        }

        @Override
        public void onDrawerSlide(View view, float arg1) {

        }

        @Override
        public void onDrawerOpened(View view) {
            if(view == rightDrawerView) {
                drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, leftDrawerView);
            } else if(view == leftDrawerView) {
                drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, rightDrawerView);
            }
        }

        @Override
        public void onDrawerClosed(View view) {
            if(view == rightDrawerView) {
                 drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, leftDrawerView);
            } else if(view == leftDrawerView) {
                 drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, rightDrawerView);
            }
        }
    });

答案 1 :(得分:7)

试试这个

setDrawerLockMode (int lockMode, View drawerView)

drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN, yourDrawer)