Как закрыть панель навигации в android

В моем приложении есть панель навигации. Из вариантов ящика открываю разные виды деятельности. В это время перед новым действием отображается пустой экран.

@Override public boolean onNavigationItemSelected (элемент @NonNull MenuItem) {

switch (item.getItemId()) {
    case R.id.nav_message:

        Intent newAct = new Intent(getApplicationContext(), FeedbackActivity.class);
        startActivity(newAct);
    
       break;


}


drawer.closeDrawer(Gravity.RIGHT);
return true;

}

В соответствии с некоторыми исследованиями я обнаружил, что нам нужно удалить из этого приведенный ниже код. Пробовал то же самое и работает нормально.

drawer.closeDrawer(Gravity.RIGHT);
    return true;

Но когда я нажимаю кнопку «Назад» в новом действии, ящик все еще находится в открытом состоянии. Как я могу закрыть без этого черного экрана?


person Malhotra    schedule 13.04.2021    source источник
comment
Переместите drawer.close перед тем, как начать работу, разве это не поможет?   -  person Martin Marconcini    schedule 13.04.2021


Ответы (2)


Вы пробовали передать GRAVITY.START в качестве параметра drawer.close(int gravity), например:

switch (item.getItemId()) {
    case R.id.nav_message:

        Intent newAct = new Intent(getApplicationContext(), FeedbackActivity.class);
        startActivity(newAct);
    
       break;


}



drawer.closeDrawer(GravityCompat.START);
return true;

И не забудьте инициализировать объект ящика с помощью findViewById()

person Yousha Bin Arif    schedule 13.04.2021
comment
Большое спасибо. Я инициализировал объект ящика как final. Проблема устранена путем удаления окончательного объявления. - person Malhotra; 14.04.2021

Попробуйте отключить анимацию меню ящика и вызовите closeDrawer перед началом нового действия

    drawer.closeDrawer(Gravity.RIGHT, false);
    switch (item.getItemId()) {
    case R.id.nav_message:

        Intent newAct = new Intent(getApplicationContext(), FeedbackActivity.class);
        startActivity(newAct);
    
       break;


}

return true;
person Gurgen Arustamyan    schedule 13.04.2021
comment
Невозможно добавить drawer.closeDrawer (Gravity.RIGHT, false); после переключателя без ярлыка корпуса. - person Malhotra; 14.04.2021
comment
Извините, это моя ошибка. Я редактировал, вы правы. - person Gurgen Arustamyan; 14.04.2021