我制作了一个双抽屉布局没有动作栏这样的东西:
Using Navigation Drawer without TitleBar or ActionBar
我的要求是当左边的抽屉打开时,禁用右边的抽屉。反之亦然。所以当左抽屉打开时,我正在隐藏右抽屉按钮。反之亦然,这很好。
但问题是,即使我隐藏了一个按钮(左或右),抽屉仍然会以水平滑动(从右向左滑动)打开。 那么如何防止抽屉打开?
因为我没有使用ActionBarDrawerToggle这样的内置函数(如
)setOnDrawerOpenListener
setOnDrawerCloseListener
不可用。
请帮助!!
答案 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)