我有一个mainactivity,我创建了一个方法来锁定/解锁drawer_layout并将其锁定在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
...
任何帮助将不胜感激。
答案 0 :(得分:0)
你必须再次初始化切换。
toggle = new ActionBarDrawerToggle(this,mDrawerLayout,mToolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close); mDrawerLayout.addDrawerListener(切换);
之后,它解锁了。
答案 1 :(得分:0)
经过一番努力之后.. 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参数,现在一切都运行良好。