Левый и правый ящики навигации Android перекрывают друг друга

У меня есть два навигационных ящика в моем приложении, которые активируются двумя значками слева и справа соответственно. Теперь мой правый значок является пунктом меню, поэтому я могу переключать оба навигационных ящика с помощью onOptionsItemSelected.

У меня проблема в том, что когда я открываю правый ящик, а затем открываю левый ящик, они перекрываются. Я хотел бы знать, как закрыть правый ящик, когда я нажимаю кнопку ящика навигации с левой стороны (вероятная кнопка «Домой» рядом со значком приложения). Есть ли прослушиватель кликов для этой кнопки, такой как пункт меню?

Заранее спасибо.


person Adifyr    schedule 17.10.2013    source источник
comment
Можете ли вы сказать мне, как вы установили навигационные ящики с обеих сторон со значком панели действий.   -  person madan V    schedule 30.10.2013
comment
Обратитесь к этому вопросу: stackoverflow.com/questions/17861755/   -  person Adifyr    schedule 30.10.2013


Ответы (1)


Я нашел решение. Изначально кнопка the ActionBarDrawerToggle (кнопка «Домой») также является пунктом меню. Таким образом, когда мы вызываем:

mDrawerLayoout.onOptionsItemSelected() мы можем поместить туда код.

Вот полный код для этого:

public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    if (myDrawerToggle.onOptionsItemSelected(item)) {
        if (myDrawerLayout.isDrawerVisible(navDrawerRight) != false) {
        myDrawerLayout.closeDrawer(navDrawerRight);
    }
        return true;
    }

Обратите внимание, я поставил myDrawerLayout.isDrawerVisible(View drawer). Это потому, что isDrawerOpened работает только тогда, когда ящик полностью открыт или закрыт. Лучше использовать isDrawerVisible(), так как он работает, когда ящик находится в любом состоянии, открытом, закрытом или промежуточном.

Надеюсь, это поможет кому-то там.

person Adifyr    schedule 18.10.2013