разблокировать drawer_layout, когда он заблокирован

У меня есть основная активность, в которой я создал метод блокировки/разблокировки 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...

любая помощь будет оценена.


person Wasif Khalil    schedule 22.04.2014    source источник
comment
Вы должны использовать только DrawerLayout.LOCK_MODE_LOCKED_CLOSED или DrawerLayout.LOCK_MODE_LOCKED_OPEN, в зависимости от того, хотите ли вы, чтобы ваш ящик оставался закрытым или открытым.   -  person joao2fast4u    schedule 17.09.2014


Ответы (2)


вам нужно снова инициализировать переключатель.

toggle = новый ActionBarDrawerToggle (это, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); mDrawerLayout.addDrawerListener (переключить);

После этого он разблокировался.

person sk4    schedule 19.01.2018

После небольшой борьбы... ничего из других решений в 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 и теперь все работает отлично.

person GabrieleG    schedule 12.05.2018