Graeme
Graeme

Reputation: 25864

Collapse a SearchView from a Toolbar not set as an ActionBar

I don't know how to collapse a SearchView without a MenuItem and I don't know how to get a MenuItem from a ToolBar that isn't an ActionBar

It's easy enough to add a SearchView to a Toolbar:

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>

I can get ahold of a SearchView and add an OnQueryTextListener() like so:

    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;}
    });

But, without a MenuItem I cannot call MenuItemCompat.collapseActionView(searchViewMenuItem).

Can someone let me know how to get a MenuItem from a none-ActionBar Toolbar.

EDIT

I hoped that mToolbar.collapseActionView(); was the solution, but this has no visible effect.

Upvotes: 0

Views: 1375

Answers (1)

EE66
EE66

Reputation: 4651

Hold a refrence to SearchView -> mSearchView. Then where ever u want to collapse it just call

mSearchView.onActionViewCollapsed();

Upvotes: 2

Related Questions