如何防止键盘和菜单同时显示?

时间:2012-09-19 06:56:05

标签: java android android-softkeyboard android-menu android-searchmanager

这是我的应用程序的屏幕截图。单击搜索框时,软键盘会自动弹出,这很好,但是,如果我也按“菜单”按钮,菜单会出现在软键盘的顶部。

如何显示菜单,但如果它处于焦点位置,则会折叠SearchView并隐藏软键盘。我可能需要检查并使用onPrepareOptionsMenu的{​​{1}}方法执行某些操作,对吗?

它不会对我造成任何真正的伤害,但在发生这种情况时,它似乎对用户来说是一种丑陋的实现。

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以从searchView或覆盖中调用getCurrentFocus()方法 您活动中的onWindowFocusChanged(boolean hasWindowFocus)

如果该视图是搜索视图,那么您可以通过以下方式关闭键盘:

InputMethodManager imm = (InputMethodManager)getSystemService(
  Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(m_edittext.getWindowToken(), 0);