2014-11-21 74 views
1

我已成功使用official documentation和一些教程实施了导航抽屉。这工作非常好。在Android中禁用导航抽屉

现在,我已经添加了应用内购买来解锁我的应用的全部功能。通过导航抽屉可以访问这些额外的功能。我有一个布尔值,根据用户是否进行此购买,根据活动的onCreate()获取truefalse值。

到目前为止这么好。

现在,我不想导航抽屉如果布尔是false。什么是一个好的/正确的方法来做到这一点?我是否需要在抽屉正在切换或受到影响的所有子碎片上添加if-else块?有什么万能锁我可以方便地使用?

更新:我想在我的Activity.onCreate()使用drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)看着this问题之后,却不起作用

+0

我确实看到了这个问题,但是这个函数似乎并不起作用。现在更新问题。 – rgamber 2014-11-21 05:31:14

+0

您可以尝试制作自定义抽屉,如我在[this](http://stackoverflow.com/a/26730570/2389078)中所述。这样,您可以管理按钮点击,直到变量不是真实的,因为您只会根据自己的愿望打开抽屉。我想你明白我的观点。 – DroidDev 2014-11-21 05:35:54

回答

2

你可以这样做。

// enable or disable slide menu 
public void setDrawerLayoutEnable(boolean what) { 
    if (what) { 
     // Drawer will be open through swipe by user 
     mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); 
    } else { 
     // User will not be able to open Drawer but it can be open from application programmatically 
     mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 
    } 
} 

这可能会帮助你。

+0

我会在哪里调用这个方法?我试图在我的Activity的onCreate()中调用它,但它没有帮助。 – rgamber 2014-11-21 05:32:02

+0

我不需要在DrawerLayout对象上的任何地方调用它。 – 2014-11-21 05:33:55

+0

'setDrawerLayoutEnable'不是标准方法。我将不得不在某处调用它。 “它只适用于DrawerLayout的对象”是什么意思? – rgamber 2014-11-21 05:35:42