У меня есть деятельность с навигационным ящиком. Ниже мой код.Как проверить, открыт ли ящик навигации?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(dLayout.isDrawerOpen(GravityCompat.START)==true) {
dLayout.closeDrawers();
}
else
{
doExit();
}
}
return super.onKeyDown(keyCode, event);
}
private void doExit() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
FirstSelection.this);
alertDialog.setPositiveButton("Yes", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
В соответствии с этим кодом, когда пользователь нажимает кнопку назад, навигация выдвижной ящик закрыт, если он открыт, иначе метод doExit();
называется. Но в моем случае условие else работает нормально, но когда я нажимаю кнопку «Назад», когда ящик открыт, приложение полностью закрывается. Я придерживался этого кода How to detect if navigation drawer is open?
Любая помощь была бы оценена.
** если (dLayout.isDrawerOpen (DList) == TRUE) { \t \t \t \t dLayout.closeDrawers(); \t \t \t} ** использовал это, все тот же вопрос – Popsta
это влияет на методKeyDown() ?? – Popsta
поделитесь своим кодом внутри oncreate, связанным с ящиком, или сравните его с образцом кода ящика. Я думаю, вы делаете что-то не так – apk