【问题标题】:android - collapse searchview after submitandroid - 提交后折叠搜索视图
【发布时间】:2013-05-16 00:30:46
【问题描述】:

我在我的应用程序中使用了 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() 这样的功能。

等待帮助

谢谢

【问题讨论】:

  • 您可能会在搜索视图上调用 .setVisibility(View.GONE) - 或者有什么原因您不能这样做?
  • 我支持 Cornholio,通过动画可以实现漂亮的折叠效果
  • 感谢 cmets。但是如果将Visibility 设置为 GONE ,搜索图标也将不可见。不是吗?我想图标化搜索视图。

标签: android collapse searchview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你可以在你的活动中这样做,用 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);
    }
    

    【讨论】:

    • 请注意:如果选择了建议,则不会折叠 SearchView。为此,您需要 OnSuggestionListener。
    • 看起来这仍然是可行的方法(6 年后)
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:
      //close suggestion list on query text submit
      searchView.setIconified(true);
      

      【讨论】:

        【解决方案5】:
            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();
        
        }});
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-29
          • 1970-01-01
          • 2013-06-22
          • 1970-01-01
          • 2018-01-17
          • 2022-01-24
          • 1970-01-01
          • 2014-05-02
          相关资源
          最近更新 更多