Skip to content Skip to sidebar Skip to footer

Toolbar Icons Disappearing After Expanding The Searchview In Android

here's my problem: I have that nice toolbar with the icons in landscape mode: after expanding the search view and showing the popup menu the 'add' item appears (I thought that it

Solution 1:

You can try to use this:

MenuItemCompat.setOnActionExpandListener(searchMenuItem, newMenuItemCompat.OnActionExpandListener() {
    @OverridepublicbooleanonMenuItemActionExpand(MenuItem item) {
        returntrue;
    }

    @OverridepublicbooleanonMenuItemActionCollapse(MenuItem item) {
        supportInvalidateOptionsMenu();
        //or use invalidateOptionsMenu();returntrue;
    }
});

So when SearchView will be collapsed Toolbar will reallocate items and ifRoom items will be visible. I had this bug too and solved it this way.

Solution 2:

Try this

<item
    android:id="@+id/app_bar_search"
    android:actionViewClass="android.support.v7.widget.SearchView"
    android:icon="@drawable/ic_action_search"
    android:title="Search"
    app:showAsAction="always|collapseActionView"
    android:enabled="true"
    android:visible="true"
    app:actionViewClass="android.support.v7.widget.SearchView"/>
<item android:title="Add"
    android:enabled="true"
    android:icon="@drawable/ic_action_add"
    android:visible="true"
    app:showAsAction="always"
    android:id="@+id/add" />
<item android:title="Settings"
    android:id="@+id/settings"
    app:showAsAction="never"
    android:icon="@drawable/ic_action_settings"
    android:enabled="true"
    android:visible="true" />
<item android:title="Feedback"
    android:id="@+id/feedbvack"
    app:showAsAction="never"
    android:icon="@drawable/ic_action_feedback"
    android:enabled="true"
    android:visible="true" />

Set app:showAsAction to always to make sure it will be visible always.

Solution 3:

Use of ifRoom has this feature if space available it will show or else it will hide it better use always or never

<item android:title="Add"
    android:enabled="true"
    android:icon="@drawable/ic_action_add"
    android:visible="true"
    app:showAsAction="always"
    android:id="@+id/add" />

Solution 4:

@Kovy has answered above with the fix for this bug and I confirm it fixes the bug. Thank you very much, mate! However, the above function has been deprecated in favour of individual menu items OnActionExpandListener. Example of it is as posted below:

MenuInflatermenuInflater= getMenuInflater();
    menuInflater.inflate(R.menu.menu, menu);
    MenuItemsearchItem= menu.findItem(R.id.action_search);
    searchItem.setOnActionExpandListener(newMenuItem.OnActionExpandListener() {
        @OverridepublicbooleanonMenuItemActionExpand(MenuItem item) {
            returntrue;
        }

        @OverridepublicbooleanonMenuItemActionCollapse(MenuItem item) {
            supportInvalidateOptionsMenu();
            returntrue;
        }
    });

Post a Comment for "Toolbar Icons Disappearing After Expanding The Searchview In Android"