Stack Overflow archive
3 score

Auto Collapse ActionBar SearchView on Soft Keyboard close

score
3
question views
39K
license
CC BY-SA 3.0

The answer from Jon Willis works great. This is an improvement to his answer.

First, create a new class that implements View.OnFocusChangeListener:

java
public class SearchViewFocusListener implements View.OnFocusChangeListener {

    private final MenuItem mMenuItem;

    public SearchViewFocusListener(MenuItem menuItem) {
        mMenuItem = menuItem;
    }

    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
            mMenuItem.collapseActionView();
            if (v instanceof SearchView) {
                ((SearchView) v).setQuery("", false);
            }
        }
    }

}

Next, set the listener on your SearchView:

java
searchView.setOnQueryTextFocusChangeListener(new SearchViewFocusListener(menuItem));

Originally posted on Stack Overflow. Public user contributions are licensed under Creative Commons Attribution-ShareAlike.