我是一名有用的助手,可以为您进行文本翻译。
我在我的操作栏中有一个菜单,其中有两个项目。在打开搜索视图“a piece of pen”之后,它仍然显示。如何隐藏它?
menu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/search"
android:title="@string/search"
android:icon="@drawable/ic_search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="ifRoom|withText" />
<item
android:id="@+id/edit"
android:icon="@drawable/ic_edit"
android:title="@string/edit"
app:showAsAction="ifRoom|withText" />
</menu>
展开搜索视图的操作栏(Actionbar with search view opened):
我也尝试过:
app:showAsAction="collapseActionView|ifRoom"
但在这种情况下,我有:
我想得到与第二张图片相同的结果。但是编辑图标应该被隐藏或者最好作为一个整体显示。
编辑
根据Ahmad Alsanie的回答,我写了类似于这样的代码:
SearchView view = (SearchView) menu.findItem(R.id.search).getActionView();
view.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus)
menu.findItem(R.id.edit).setVisible(false);
});
这个功能已经实现了,但是我想知道怎样在关闭搜索视图后重新显示编辑图标。我尝试使用setOnCloseListener
,但是没有成功。