I've been struggling with this for weeks.. I have a global search that offers up a custom listview with suggestions as a user types. When a user selects an option, I want the searchview to return to its completely collapsed state.
Instead, it shrinks down but stays in a slightly expanded view.
I've thrown EVERYTHING I can find at this thing to close it, but cannot for the life of me get the right method. Here's the function:
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;
}
Close search is then manually called when an item is selected from the custom "suggestion" listview.
Found it. The call should be
_searchView.onActionViewCollapsed()
. Why on earth you call a "listener" style method (ie, one that begins with 'on') is beyond me.@sebastian that's not actually right.
I've been stucked at this issue for a while, but finally I've managed to handle it in the right way. You're suppose to call menuSearch.collapseActionView(); instead. This method will call onActionViewCollapsed, which you could override. So you don't call a listener ;)
If you're using Toolbar (android.support.v7.widget.Toolbar) and the corresponding SearchView (android.support.v7.widget.SearchView) with it, this works:
I've changed the 'Go' button to 'Next', so the only method that worked for me (on API 19) is typing
closeBtn.performClick();
closeBtn.performClick();
(Clicking 'close' button twice) in theOnEditorActionListener
of theAutoCompleteTextView
. You can get theAutoCompleteTextView
like this:You should clear the search, remove the focus and then call:
This worked for me
searchMenuItem.collapseActionView();