从未设置为 ActionBar 的工具栏折叠 SearchView
Collapse a SearchView from a Toolbar not set as an ActionBar
我不知道如何在没有 MenuItem 的情况下折叠 SearchView,也不知道如何从不是 ActionBar 的 ToolBar 获取 MenuItem
将 SearchView 添加到工具栏非常简单:
Toolbar mToolbar = (Toolbar) toReturn.findViewById(R.id.toolbar);
mToolbar.inflateMenu(R.menu.search_menu);
menu/search_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:icon="@drawable/ic_grey_search"
android:title="@string/filter"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
我可以得到一个 SearchView 并像这样添加一个 OnQueryTextListener():
final SearchView searchView = (SearchView) mToolbar.findViewById(R.id.search);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
ToastUtils.makeText("Test", Toast.LENGTH_LONG);
//MenuItemCompat.collapseActionView(searchView);
return true;
}
@Override public boolean onQueryTextChange(String newText) {return false;}
});
但是,没有 MenuItem
我无法调用 MenuItemCompat.collapseActionView(searchViewMenuItem)
。
谁能告诉我如何从 none-ActionBar 工具栏中获取 MenuItem。
编辑
我希望 mToolbar.collapseActionView();
是解决方案,但这没有明显的效果。
保留对 SearchView -> SearchView 的引用。
然后无论你想折叠它只需调用
mSearchView.onActionViewCollapsed();
我不知道如何在没有 MenuItem 的情况下折叠 SearchView,也不知道如何从不是 ActionBar 的 ToolBar 获取 MenuItem
将 SearchView 添加到工具栏非常简单:
Toolbar mToolbar = (Toolbar) toReturn.findViewById(R.id.toolbar);
mToolbar.inflateMenu(R.menu.search_menu);
menu/search_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:icon="@drawable/ic_grey_search"
android:title="@string/filter"
app:showAsAction="always"
app:actionViewClass="android.support.v7.widget.SearchView" />
</menu>
我可以得到一个 SearchView 并像这样添加一个 OnQueryTextListener():
final SearchView searchView = (SearchView) mToolbar.findViewById(R.id.search);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
ToastUtils.makeText("Test", Toast.LENGTH_LONG);
//MenuItemCompat.collapseActionView(searchView);
return true;
}
@Override public boolean onQueryTextChange(String newText) {return false;}
});
但是,没有 MenuItem
我无法调用 MenuItemCompat.collapseActionView(searchViewMenuItem)
。
谁能告诉我如何从 none-ActionBar 工具栏中获取 MenuItem。
编辑
我希望 mToolbar.collapseActionView();
是解决方案,但这没有明显的效果。
保留对 SearchView -> SearchView 的引用。 然后无论你想折叠它只需调用
mSearchView.onActionViewCollapsed();