3

我正在SearchView根据本指南使用,并尝试像这样折叠搜索视图:

        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        mSearchView = (SearchView) MenuItemCompat.getActionView(item);
        mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));


        expand = !Helper.isNullOrEmpty(placeHolder);
        Log.d("map", "set mSearch view with expand:" + expand + ", queryStr:" + placeHolder);
        if (expand) {
            MenuItemCompat.expandActionView(item);
//            mSearchView.setQuery(placeHolder, false);
        } else {
            boolean x = MenuItemCompat.collapseActionView(item);
            Log.d("map", "coop view:" + x);
        }

但是我总是得到这个:

coop view: false

有什么问题?

SearchView顺便说一句,我对 internal的奇怪行为感到抓狂。你们是用这个还是别的?


更新(为什么我要手动控制搜索视图)

持有 serchview 的活动是我的核心活动,也就是说大部分与搜索相关的工作都会传递给这个活动。

用户可以在其他活动中输入搜索参数并为此活动启动一个新的意图来完成这项工作,然后我必须手动更改搜索视图的状态

4

1 回答 1

0

这似乎可以解决问题:

选择项目后如何完全折叠 SearchView?

根据上面的线程(对我来说测试没问题),你必须这样做:

MenuItemCompat.collapseActionView(searchItem);

searchView.onActionViewCollapsed();

如果你没有使用 AppCompat 库,你可以这样做:

searchItem.collapseActionView();

searchView.onActionViewCollapsed();
于 2015-08-02T14:36:04.907 回答