Sono necessari due passaggi.
In primo luogo, è necessario assicurarsi che la voce del menu di ricerca sia sempre visualizzata come un'azione e mai spostata nel menu di overflow. Per raggiungere questo obiettivo impostare l'attributo della voce di menu di ricerca showAsAction
a always
:
<item
android:id="@+id/menu_search"
android:title="Search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView" />
In secondo luogo, assicurarsi che la vista azione non è mostrata in iconificata (cioè compresso) la modalità di default. Per fare questa chiamata setIconifiedByDefault(false)
sulla vostra ricerca istanza di vista:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my_activity, menu);
MenuItem searchViewItem = menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView) searchViewItem.getActionView();
[...]
searchView.setIconifiedByDefault(false);
return true;
}
Che dovrebbe farlo.
ottenere NPE su questa riga searchView.setIconifiedByDefault ho utilizzato questo codice SearchView searchView = (SearchView) menu.findItem (R.id.menu_search) .getActionView(); searchView.setIconifiedByDefault (false); – Erum
Prova ad ottenere SearchView da MenuItemCompat.getActionView (menu.findItem (R.id.menu_search)) se stai usando AppCompat SearchView –