通过代码关闭 Searchview (Android : androidx.appcompat.widget)
Closing Searchview by code (Android : androidx.appcompat.widget)
我的操作栏中有一个 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"
我的操作栏中有一个 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"