从未设置为 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();