问题描述
我在操作栏中有一个Searchview,对此我希望有一种特殊的行为,但无法实现。 单击搜索时,操作栏中会出现一个编辑字段。 在搜索编辑字段中键入内容时,键入时将即时显示结果列表。
到目前为止很好,这是默认行为。
否,当我从列表中选择任何结果时,我想关闭搜索栏,但是当前搜索栏一直显示在操作栏中。
插图: 默认情况下,操作栏:
我点击搜索并开始输入:
应用栏仍显示字段编辑。我必须通过单击关闭按钮来关闭该字段。如何通过代码隐藏字段,因此应用程序栏看起来像默认的第一个屏幕截图?
searchView.setonItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
<close field and show search icon again>
// my tries,which didn't work correctly
//searchView.clearFocus();
//searchView.setIconified(true);
//searchView.setVisibility(View.GONE);
//searchItem.setVisible(true);
}
}
解决方法
正如文档所说:https://developer.android.com/reference/android/widget/SearchView#setIconifiedByDefault(boolean)
searchView.setQuery("",false);
if (!searchView.isIconifiedByDefault()) {
searchView.setIconifiedByDefault(true);
}
编辑:不推荐使用setIconified(true)和isIconfied()
也可以尝试在菜单上设置app:showAsAction =“ always”