Auto Collapse ActionBar SearchView on Soft Keyboard close

后端 未结 11 1078
遥遥无期
遥遥无期 2020-12-07 20:30

I am currently using an ActionBar menu item to display a SearchView in the action bar. When the search menu item is expanded the soft keyboard is displayed which is what I

11条回答
  •  [愿得一人]
    2020-12-07 20:55

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

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

    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:

    searchView.setOnQueryTextFocusChangeListener(new SearchViewFocusListener(menuItem));
    

提交回复
热议问题