В словесной игры для Android с DrawerLayout влево и вправо навигационные ящики закрываются следующим кодом в MainActivity:Handling Назад кнопку на заказ Вид
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(mLeftDrawer)) {
mDrawerLayout.closeDrawer(mLeftDrawer);
} else if (mDrawerLayout.isDrawerOpen(mRightDrawer)) {
mDrawerLayout.closeDrawer(mRightDrawer);
} else {
super.onBackPressed();
}
}
Это хорошо работает (левый скриншот) -
Однако я также пытается обнаружить Кнопка Назад в моей настраиваемое представление (который переопределяет onDraw
способа привлечь прокрутку настольной игры и письмо плитку) следующие способами - (чтобы приложение пользователя отменяя плитку обменивать или вспомнить несыгранную плитку с игровым поля) - но ни один из них не называются:
@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {
if (mSwapping && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}
return super.dispatchKeyEventPreIme(event);
}
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
if (mSwapping && keyCode == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}
return super.onKeyPreIme(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mSwapping && keyCode == KeyEvent.KEYCODE_BACK) {
cancelSwapLetters();
return true;
}
return super.onKeyDown(keyCode, event);
}
У меня есть помещают точки останова в вышеуказанные методы, но ни один из них не попадает.
Пожалуйста, сообщите мне, как решить эту проблему.
После вызова 'setFocusableInTouchMode (истина) и' requestFocus() 'в моей настраиваемое представление, все 3 метода были вызываемые в этом порядке: 'dispatchKeyEventPreIme',' onKeyPreIme', 'onKeyDown'. Спасибо –
Рад, что я мог бы помочь. ура! – vaibhav
В библиотеке DialogPlus 'setFocusableInTouchMode' не существует. Он не уверен? –