3

我的布局中有一个 SearchView(不在操作栏中),我无法使用通常的方法关闭键盘:

public static void hideKeyboard(Activity activity) {
    InputMethodManager imm = (InputMethodManager)activity
            .getSystemService(Context.INPUT_METHOD_SERVICE);

    if (imm != null && activity != null) {
        View currentFocus = activity.getCurrentFocus();

        if (currentFocus != null) {
            imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
        }
    }
}

SearchView 保持其焦点状态。在旧设备上使用此方法会显示键盘被关闭然后重新显示。

我认为问题在于 SearchView 实际上是在内部维护自己状态的视图层次结构。

如何关闭键盘并使 SearchView 失焦?

4

1 回答 1

8

听起来可能发生的事情是您没有聚焦 SearchView,然后它说“哦等等,我仍然有焦点,我需要键盘”。是否activity.getCurrentFocus().clearFocus()清除焦点?

于 2013-07-15T02:32:54.177 回答