MenuItemCompat.collapseActionView始终返回false

时间:2013-11-06 06:42:20

标签: android

我根据this guide使用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的奇怪行为感到疯狂。你们使用这个或其他东西吗?


更新(为什么我要手动控制searchview beofora)

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

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

1 个答案:

答案 0 :(得分:0)

这似乎可以解决问题:

How to completely collapse a SearchView after an item selected?

根据上面的帖子(对我来说测试好了),你必须这样做:

MenuItemCompat.collapseActionView(searchItem);

searchView.onActionViewCollapsed();

如果您不使用AppCompat库,则可以执行以下操作:

searchItem.collapseActionView();

searchView.onActionViewCollapsed();