Konieczne są dwa kroki.
Najpierw upewnij się, że element menu wyszukiwania jest zawsze wyświetlany jako działanie i nigdy nie został przeniesiony do menu nadmiarowego. Aby osiągnąć ten ustawiony atrybut elementu menu szukania w showAsAction
do always
:
<item
android:id="@+id/menu_search"
android:title="Search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView" />
drugie, upewnij się, że widok akcja nie jest pokazany w zikonifikowanych (tj zawalił) tryb domyślnie. Aby zrobić to wezwanie setIconifiedByDefault(false)
na wyszukiwanie Lista przykład:
@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;
}
To powinno wystarczyć.
Pobieranie NPE w wyszukiwarce thsi searchView.setIconifiedByDefault Użyłem tego kodu SearchView searchView = (SearchView) menu.findItem (R.id.menu_search) .getActionView(); searchView.setIconifiedByDefault (false); – Erum
Spróbuj uzyskać SearchView od MenuItemCompat.getActionView (menu.findItem (R.id.menu_search)), jeśli używasz AppCompat SearchView –