在SearchView中,当用户完成查询后,隐藏键盘。

4

你好,我正在尝试在搜索视图中完成查询后隐藏Android虚拟键盘但遇到了困难。我希望当用户按下回车键时键盘消失(最好是当他们点击键盘外部的任何地方,但现在只满足回车键)。我已经使用onQueryTextSubmit成功地为查询工作:

public boolean onQueryTextSubmit(String s) {
        //Search stuff...
        searchView.clearFocus();
        return true;
    }

然而,我希望它也能处理查询为空的情况。问题在于如果查询为空,onQueryTextSubmit不会被触发:Android SearchView.OnQueryTextListener OnQueryTextSubmit not fired on empty query string

同时,我也不想使用ActionBarSherlock,因此这个解决方案不适用:Android SearchView empty string

我只想在用户搜索后隐藏键盘,这似乎是一个很简单的问题,但是却让我头疼。有什么建议吗? 谢谢!


1
有同样的问题。有进展吗? - LoPoBo
4个回答

3
如果您正在使用兼容性库:
MenuItemCompat.collapseActionView(searchItem);//searchItem is an instance of MenuItem

如果您没有使用兼容性库:
searchItem.collapseActionView();

谢谢,但我想知道何时实现这些(特别是当搜索查询为空时)。 - John
好的,我明白你想做什么。我会编辑我的答案。你是否在使用兼容性库?如果没有,你的目标Android版本是什么? - Larry McKenzie

1

谢谢您,但我不确定这是否是我正在寻找的内容。如上所述,当按下回车键时,我会隐藏键盘,除了在空字符串上。我已经查看了该链接,并在我的原始问题中引用了它。 - John
@John,请查看:https://dev59.com/j2vXa4cB1Zd3GeqPGzje - 72DFBF5B A0DF5BE9

0

这个有效:

searchView.setQuery("", false);
searchView.setIconified(true);

-1

public boolean onQueryTextSubmit(String s) { //搜索相关操作...

    searchView.setIconified();
    searchView.clearFocus();
    searchView.onActionViewCollapsed();
    return true;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接