Как я могу предотвратить одновременное отображение клавиатуры и меню?

Вот скриншот моего приложения. Когда нажимается поле поиска, программная клавиатура автоматически появляется, что нормально, но если я также нажму кнопку «Меню», меню появится поверх программной клавиатуры.

Как я могу показать меню, но свернуть SearchView, если он в фокусе, а также скрыть программную клавиатуру. Наверное, мне нужно что-то проверить и сделать в методе onPrepareOptionsMenu моего Activity, верно?

Это не причиняет мне никакого реального вреда, но когда это происходит, пользователю это кажется уродливой реализацией.

введите здесь описание изображения


person Mridang Agarwalla    schedule 19.09.2012    source источник


Ответы (1)


Вы можете вызвать метод getCurrentFocus() из searchView или переопределить onWindowFocusChanged(boolean hasWindowFocus) в своей деятельности.

Если это представление является представлением поиска, вы можете закрыть клавиатуру следующим образом:

InputMethodManager imm = (InputMethodManager)getSystemService(
  Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(m_edittext.getWindowToken(), 0);
person Myth1c    schedule 25.09.2012