12

我在我的应用程序中使用 searchview(没有操作栏)。查询文本提交后如何折叠搜索视图?

我有这些听众;

        @Override
        public boolean onQueryTextSubmit(String query) {

            InputMethodManager imm = (InputMethodManager)thisFr.getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(globalSearch.getWindowToken(), 0);

            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            // TODO Auto-generated method stub
            return false;
        }

我不使用 ActionBar 所以我没有像 collapseActionView() 这样的功能。

等待帮助

谢谢

4

5 回答 5

17

您需要调用 setIconified(true) 两次才能真正折叠您的搜索视图,第一个调用文本会使用第二个调用键盘清除,并且搜索视图会关闭。

于 2015-05-13T07:16:52.847 回答
15

你可以在你的活动中这样做,用 actionbarsherlock 测试(它甚至隐藏键盘,确保在 onQueryTextSubmit 中返回 false):

private MenuItem searchMenuItem;

public MenuItem getSearchMenuItem() {
    return searchMenuItem;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // ...
    searchMenuItem = menu.findItem(R.id.menu_search);
    // ...
    searchView.setOnQueryTextListener(new OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            MenuItem searchMenuItem = getSearchMenuItem();
            if (searchMenuItem != null) {
                searchMenuItem.collapseActionView();
            }
            return false;
        }
        @Override
        public boolean onQueryTextChange(String newText) {
            // ...
            return true;
        }
    });
    // ...
    return super.onCreateOptionsMenu(menu);
}
于 2013-06-13T15:19:39.223 回答
4

如果您在 OptionsMenu 中使用 SearchView,您可以调用invalidateOptionsMenu()

于 2015-04-14T12:24:54.970 回答
2
//close suggestion list on query text submit
searchView.setIconified(true);
于 2015-08-22T06:22:52.917 回答
0
    final MenuItem searchterm = menu.findItem(R.id.search);
    SearchView searchView = null;
     searchView = (SearchView) searchterm.getActionView();

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

        @Override
        public boolean onQueryTextSubmit(String query) {

            searchterm.collapseActionView();

}});
于 2020-06-13T09:30:40.100 回答