您可以使用此方法锁定或解锁抽屉:DrawerLayout.setDrawerLockMode(...)
。(此方法还有两个其他版本可以为特定抽屉指定锁定模式。)要锁定,请使用DrawerLayout.LOCK_MODE_LOCKED_CLOSED
; 解锁,使用DrawerLayout.LOCK_MODE_UNLOCKED
.
如果您使用的是 ActionBarDrawerToggle,则需要添加一些额外的代码以防止在您锁定抽屉时单击 ActionBarDrawerToggle 时抽屉打开。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// check lock mode before passing to ActionBarDrawerToggle
// I assume your drawer is on the left; if not, use Gravity.RIGHT
int lockMode = mDrawer.getDrawerLockMode(Gravity.LEFT);
if (lockMode == DrawerLayout.LOCK_MODE_UNLOCKED &&
mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle your other action bar items...
return super.onOptionsItemSelected(item);
}