Android SoftKeyboardDetect: игнорировать это событие, что это значит?

Я часто вижу это отладочное сообщение в LogCat. Например, при свайпе или вращении устройства. Тогда эмулятор не реагирует на события. Что это значит?

При необходимости проверить поворот на эмуляторе, но на некоторых версиях, когда я нажимаю CTRL F12 или CTRL F11 ничего не происходит (ну вращается устройство целиком, а не экран) и я вижу это сообщение в журнале. В гугле тоже ничего не нашел...

Хорошо, это специфично для PhoneGap. Я нашел кое-что в исходном коде PhoneGap:

 /**
  * We are providing this class to detect when the soft keyboard is shown 
  * and hidden in the web view.
  */
 class LinearLayoutSoftKeyboardDetect extends LinearLayout {

        private static final String TAG = "SoftKeyboardDetect";

Но я ничего не делаю с программной клавиатурой, я просто вращаю устройство. Может это баг?


person User    schedule 17.02.2012    source источник


Ответы (2)


Я могу дать вам предысторию этого журнала. В Android есть ошибка или, может быть, они назвали бы это отсутствием функции, но при отображении или исчезновении клавиатуры не возникает никакого события. Это вызывает проблему для веб-приложений, поскольку клавиатура укорачивает размер экрана. Когда размер экрана становится меньше, страдает ваш пользовательский интерфейс.

Чтобы иметь возможность реагировать на отображение/скрытие клавиатуры в Android PhoneGap, мы реализовали LinearLayoutSoftKeyboardDetect, который в основном представляет собой LinearLayout, но реагирует на изменения размера экрана. Если вы повернете устройство, ширина станет высотой, и мы можем проигнорировать изменение, но если высота резко уменьшится, а ширина останется прежней, можно с уверенностью предположить, что отображается клавиатура, и мы создадим событие show keyboard. Когда высота становится значительно больше, а ширина остается неизменной, мы запускаем событие скрытия клавиатуры. Есть смысл?

person Simon MacDonald    schedule 21.02.2012

Эта реализация, похоже, влияет на ситуацию -> Когда всплывает родная клавиатура, она уменьшает веб-просмотр в телефонной будке. Опять меняется деменция. Поэтому он имеет тенденцию игнорировать необходимые события. Я хочу обнаружить событие нажатия кнопки на встроенной клавиатуре.

person MadNik    schedule 10.06.2012