【问题标题】:unlock drawer_layout when it is locked锁定时解锁抽屉布局
【发布时间】:2014-04-22 10:41:56
【问题描述】:

我有一个主要活动,我创建了一个方法来锁定/解锁抽屉布局并将其锁定在onCreate() 方法中。

public void disableDrawer(Boolean bol){
    if(bol) {
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
    }else{
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
    }
}

在检查用户是否登录后,我想从片段中解锁抽屉。 我尝试在 onActivityCreated 中执行此操作,但抽屉仍处于锁定状态

MainActivity activity = ((MainActivity)getActivity());
activity.disableDrawer(false);

总之

DrawerLayout.LOCK_MODE_UNLOCKED

无法解锁DrawerLayout...

任何帮助将不胜感激。

【问题讨论】:

  • 您应该只使用 DrawerLayout.LOCK_MODE_LOCKED_CLOSED 或 DrawerLayout.LOCK_MODE_LOCKED_OPEN,这取决于您希望抽屉保持关闭还是打开状态。

标签: android drawerlayout


【解决方案1】:

你必须再次初始化切换。

toggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); mDrawerLayout.addDrawerListener(toggle);

之后,它就解锁了。

【讨论】:

    【解决方案2】:

    经过一番挣扎之后.. stackoverflow 中的其他解决方案对我没有任何帮助。 我的具体问题也是我能够锁定但不能解锁 DrawerLayout。

    然后我在文档(https://developer.android.com/reference/android/support/v4/widget/DrawerLayout#setdrawerlockmode)中看到还有两个函数:

    void setDrawerLockMode (int lockMode, View drawerView)
    void setDrawerLockMode (int resId, int edgeGravity)
    

    第二个对我很有用。

    我只是指定了 Gravity.LEFT 参数,现在一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      相关资源
      最近更新 更多