Навигационный ящик правой стороны ActionBarToggle

Я настроил свое приложение с левым и правым навигационным ящиком. Все работает отлично, кроме одного.

Я хотел бы, чтобы мой другой элемент панели действий переключал правый навигационный ящик. Обычный левый ActionBarDrawerToggle прекрасно работает. Панель уведомлений приложения Google+ для Android — это то, что я хотел бы, чтобы действие имитировало.

Вот код, который у меня есть для настройки правого переключателя (сейчас он принудительно закрывается при нажатии):

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            if (mDrawerLayout.isDrawerOpen(mLeftDrawer)) {
                mDrawerLayout.closeDrawer(mLeftDrawer);
            } else {
                mDrawerLayout.openDrawer(mLeftDrawer);
            }

            return true;

        // Right Drawer Toggle

        case R.id.openRd:
            if (mDrawerLayout.isDrawerOpen(mRightDrawer)) {
                mDrawerLayout.closeDrawer(mRightDrawer);
            }
            mDrawerLayout.openDrawer(mRightDrawer);
    }
    return true;
}

Если кто-нибудь знает, как это сделать, было бы здорово, если бы вы могли сообщить мне!

Спасибо!


person Ethan Thomas    schedule 12.11.2013    source источник


Ответы (1)


Когда вы говорите «принудительно закрывается», вы имеете в виду сбой приложения или принудительное закрытие правого ящика? Если вы столкнулись со второй ситуацией, это, вероятно, связано с тем, что перед mDrawerLayout.openDrawer(mRightDrawer) отсутствует else.

Должно быть следующее:

case R.id.openRd:
if (mDrawerLayout.isDrawerOpen(mRightDrawer)){
    mDrawerLayout.closeDrawer(mRightDrawer);
} else {
    mDrawerLayout.openDrawer(mRightDrawer);
}
return true;

В противном случае я бы рассмотрел этот вопрос, чтобы убедиться, что вы правильно настраиваете два ящика в XML: Android — Возможно ли отображение ящика навигации справа?

person David Crozier    schedule 14.11.2013
comment
Да, я понимаю, что вы говорите, однако само приложение вылетает, так как приложение xyz остановилось. Слайд с правой стороны экрана открывает его, и он прекрасно работает. Я настроил их на самом деле в соответствии с этой веткой. Эта проблема действительно касается самого переключателя, а не навигационного ящика. - person Ethan Thomas; 15.11.2013