您可以尝试这样做:
首先调用抽屉的布局:
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
之后像这样设置锁定模式:
mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_LOCKED_CLOSED);
getActionBar().setHomeButtonEnabled(false); // This for the App Icon
然后,如果您想再次解锁抽屉:
mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_UNLOCKED); // It is unlocked but it is not shown.
或者
mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_LOCKED_OPEN); // To Show the drawer opened but it will stay open.
看看这是否对您有帮助。:)
编辑2:
现在我懂了:
声明你的抽屉布局和你的抽屉列表视图:
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerList = (ListView)findViewById(R.id.list_slidermenu);
在您的按钮/项目侦听器上执行以下操作:
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mDrawerLayout.openDrawer(mDrawerList); // This will open the button on click of the item
}
});
为了解锁的合理性,我只是展示了它,以防你想再次打开抽屉。
不要锁定您的按钮,请先尝试我的编辑。看看这是否对你有帮助。
编辑 3:
设置您的抽屉列表视图和抽屉布局:
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerList = (ListView)findViewById(R.id.list_slidermenu);
mDrawerLayout.setDrawerLockMode(mDrawerLayout.LOCK_MODE_LOCKED_CLOSED); //prevents user from manually opening the drawer
getActionBar().setHomeButtonEnabled(false); // Prevents user from opening the drawer using the app icon
然后将其添加到您的侦听器中:
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mDrawerLayout.openDrawer(mDrawerList); // This will open the button on click of the item
}
});
我在我的应用程序上对此进行了测试,我相信这是您想要的。因此,即使用户尝试滑动或单击应用程序图标,基本上抽屉也不会打开,但一旦在内容视图上单击项目,它就会打开。这是我相信你想要的输出。