How do I open the SearchView programmatically?
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.
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();
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);