我的应用程序中有一个抽屉导航( appcompat v7 ),工作正常。
现在,我想禁用它,直到用户购买应用程序内购买来解锁其他功能。因此,在我的Activity.onCreate()
中,初始化抽屉并填充它之后,我将调用此函数:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
此功能没有执行任何操作。在操作栏中点击抽屉克拉后,抽屉将继续正常打开和关闭。我尝试在
Activity.onResume()
中调用此函数,没有任何区别。使用此功能的正确方法是什么?
(我尝试在网上寻找答案,但找不到能解决我问题的任何东西)。感谢您的帮助,因为我在这个问题上停留了一段时间。
最佳答案
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
只能通过滑动来禁用打开的抽屉布局,直到您单击抽屉导航图标
保留一个 bool 变量
用mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
写onStart()
并在下面的代码行中写
@Override
public boolean onOptionsItemSelected(android.view.MenuItem item) {
if(!disabled)
{
if (item.getItemId() == android.R.id.home) {
if (mDrawerLayout.isDrawerOpen(mDrawerLinearLayout)) {
mDrawerLayout.closeDrawer(mDrawerLinearLayout);
} else {
mDrawerLayout.openDrawer(mDrawerLinearLayout);
}
}
}
return super.onOptionsItemSelected(item);
}
这肯定会工作