我的应用程序中有一个抽屉导航( 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);
    }

这肯定会工作

10-08 14:50