Ho un SearchView funzionante che si espande nel menu Opzioni quando l'utente tocca l'icona di ricerca. Tuttavia si espande solo all'interno dello spazio disponibile tra le altre icone Menu Opzioni. Su uno schermo ampio va bene, ma con uno spazio ristretto c'è solo spazio per mostrare 5-10 caratteri nella casella di ricerca. Voglio che sovrapponga le altre icone come fa per l'app Contatti Android. Attualmente sto costruendo con targetSdkVersion = 17. Speriamo di perdere qualcosa di semplice :)SearchView in OptionsMenu not full width
(Nota aggiunta in seguito: l'unica soluzione che ho trovato finora utilizzabile è nascondere tutte le icone del menu quando voglio per espandere l'icona di ricerca, ciò è concettualmente semplice, ma è complicato perché quando si ripristinano le icone nascoste, si deve passare attraverso un po 'di logica per capire quali ripristinare, o mantenere variabili di stato, ecc.)
Ecco la mia voce xml in per l'OptionsMenu:
<item
android:id="@+id/menu_search_shallow"
android:title="Search Current Folder"
android:icon="@drawable/ic_btn_search"
android:showAsAction="always|collapseActionView"
android:actionViewClass="android.widget.SearchView" />
ho anche nella mia principale codice di attività:
@Override
public boolean onCreateOptionsMenu (Menu menu)
{
getMenuInflater().inflate(R.menu.nav_menu, menu);
this.optionsMenu = menu;
MenuItem searchItem = menu.findItem (R.id.menu_search_shallow);
searchItem.setOnActionExpandListener (this);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_shallow_hint));
searchItem = menu.findItem (R.id.menu_search_deep);
searchItem.setOnActionExpandListener (this);
searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_deep_hint));
}
e
@Override
public boolean onMenuItemActionExpand(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setOnQueryTextListener (this);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setQuery ("", false);
return true;
}
Questo suona ragionevole. Non ho intenzione di cambiare il codice di lavoro in questo momento, ma contrassegnerò questa risposta come corretta partendo dal presupposto che hai capito bene! –
non funziona, imposta solo MaxWidth = 10000 coprirà la vista ma nasconderà altri elementi – Hiep