我几周来一直在努力解决这个问题。我有一个全球搜索,它提供了一个自定义列表视图,其中包含用户类型的建议。当用户选择一个选项时,我希望searchview返回到完全折叠状态。
相反,它会缩小,但会保持略微扩大的视野。
我已经抛出一切我能找到的东西来关闭它,但不能为我的生活得到正确的方法。这是功能:
final SearchView.OnCloseListener closeListener = new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
return closeSearch();
}
};
protected boolean closeSearch() {
_searchView.clearFocus();
_searchView.setQuery("", false);
_searchView.setFocusable(false);
_searchMenuItem.collapseActionView();
isSearchFragmentVisible(false);
return false;
}
当从自定义“建议”列表视图中选择项目时,手动调用关闭搜索。
答案 0 :(得分:52)
而不是致电_searchView.onActionViewCollapsed()
来调用menuItem.collapseActionView()
_searchView = menuItem.getActionView()
。
答案 1 :(得分:42)
找到它。通话应为_searchView.onActionViewCollapsed()
。为什么你称之为“听众”风格的方法(即以'on'开头的方法)超出了我。
答案 2 :(得分:17)
@sebastian说实际上并不正确。
我已经被困在这个问题上了一段时间,但最后我设法以正确的方式处理它。您可能会调用 menuSearch.collapseActionView(); 。此方法将调用 onActionViewCollapsed ,您可以覆盖它。所以你不要打电话给听众;)
MenuItem menuSearch = menu.findItem(R.id.itemSearch);
SearchView searchView = (SearchView) menuSearch.getActionView();
//Don't use next line
//searchView.onActionViewCollapsed();
menuSearch.collapseActionView();
答案 3 :(得分:11)
如果你正在使用工具栏(android.support.v7.widget.Toolbar)和相应的 SearchView(android.support.v7.widget.SearchView)它,这工作:
searchView.setQuery("", false);
searchView.clearFocus();
searchView.setIconified(true);
答案 4 :(得分:6)
您应该清除搜索,移除焦点,然后致电:
searchView.setIconified(true);
答案 5 :(得分:3)
这对我有用,它也默认关闭了键盘
MenuItemCompat.collapseActionView(menuItem);
答案 6 :(得分:2)
根据最新的documentation和source code iff false
,返回iconifiedByDefault == true
已足够。
您是否有机会定义iconifiedByDefault="false"
或致电setIconifiedByDefault(false)
?
答案 7 :(得分:1)
searchView.setIconified(true); // Call this twice
searchView.setIconified(true);
它对我有用。
答案 8 :(得分:0)
我已经改变了“Go'按钮到'下一步',所以唯一适用于我的方法(在API 19上)就是打字
closeBtn.performClick();
closeBtn.performClick();
(在OnEditorActionListener
的{{1}}中点击'关闭'按钮两次。
您可以像这样获得AutoCompleteTextView
:
AutoCompleteTextView
答案 9 :(得分:0)
这对我有用searchMenuItem.collapseActionView();