How do I open the SearchView programmatically?
If you want to use support library only when necessary, do this
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
if (Utils.hasIceCreamSandwich())
searchMenuItem.expandActionView();
else MenuItemCompat.expandActionView(searchMenuItem);
else simply do this
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
MenuItemCompat.expandActionView(searchMenuItem);
Try to call expandActionView()
on MenuItem, not onActionViewExpanded() on ActionView.
It works for me.
MenuItem searchMenuItem = menu.findItem(R.id.menu_search);
searchView = (SearchView) searchMenuItem.getActionView();
searchMenuItem.expandActionView();
Expand the SearchView
with
searchView.setIconified(false);
and collapse it with
searchView.setIconified(true);
You need to change the value of android:showAsAction
from ifRoom|collapseActionView
to always
. The SearchView
's attribute android:iconifiedByDefault
should be true
, which is the default value, otherwise the user can not collapse the SearchView
after it was expanded programmatically.