1

在我的应用程序中,我有一个搜索按钮,单击该按钮将使 EditText 小部件可见,将焦点放在其中并显示键盘。当我这样做时,我称之为代码:

queryTextView.requestFocus();
    InputMethodManager imm = Utilities.getInputMethodManagerFromContext(getContext());
    imm.showSoftInput(queryTextView, InputMethodManager.SHOW_FORCED);

这是我期望的第一次在风景中显示:

工作示例

一旦我输入文本并点击搜索,我将隐藏我的 EditText 并强制关闭键盘。我使用以下代码执行此操作:

InputMethodManager imm = Utilities.getInputMethodManagerFromContext(getContext());      
    imm.hideSoftInputFromWindow(getWindowToken(), 0);

如果我再次按下按钮以使 EdidText 可见并再次显示键盘,我的屏幕将如下所示(仅在使用普通 Galaxy Nexus 键盘时):

破碎的风景

使用另一个键盘,例如 SwiftKey,我没有得到这种行为。我可以寻找哪些东西来找出为什么这个软键盘没有完全填满屏幕?

4

2 回答 2

1

编辑:再三考虑,从您的屏幕截图看来,键盘正试图占据全屏,所以 onEvaluateFullscreenMode 应该返回 true ......也许问题出在某个地方onCreateExtractTextView

不是您要查找的内容,但是如果所有其他方法都失败了,也许您可​​以获取 AOSP 键盘源,遍历它并找出是否/为什么onEvaluateFullscreenMode返回,或者根本没有调用它。

于 2012-05-07T19:59:31.407 回答
0

使用 android:imeOptions="flagNoFullscreen" 来实现该功能。

于 2015-09-09T14:32:21.267 回答