我根据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来完成工作,然后我必须手动更改搜索视图的状态
答案 0 :(得分:0)
这似乎可以解决问题:
How to completely collapse a SearchView after an item selected?
根据上面的帖子(对我来说测试好了),你必须这样做:
MenuItemCompat.collapseActionView(searchItem);
searchView.onActionViewCollapsed();
如果您不使用AppCompat库,则可以执行以下操作:
searchItem.collapseActionView();
searchView.onActionViewCollapsed();