SearchView in OptionsMenu nicht in voller Breite

Ich habe eine funktionierende Suchansicht, die sich in meinem Optionsmenü erweitert, wenn der Benutzer auf das Suchsymbol tippt. Es wird jedoch nur innerhalb des verfügbaren Platzes unter den anderen OptionsMenu-Symbolen erweitert. Auf einem Breitbildschirm ist dies in Ordnung, aber bei einem schmalen Raum können nur 5-10 Zeichen im Suchfeld angezeigt werden. Ich möchte, dass es die anderen Symbole überlagert, wie dies auch für die Android-Kontakte-App der Fall ist. Momentan baue ich mit targetSdkVersion = 17. Hoffentlich fehlt mir etwas Einfaches :)

(Anmerkung später hinzugefügt: Die einzige Lösung, die ich bisher für praktikabel befunden habe, ist, alle Menüsymbole auszublenden, wenn ich das Suchsymbol erweitern möchte. Dies ist konzeptionell einfach. Es ist jedoch chaotisch, da beim Wiederherstellen von ausgeblendeten Symbolen ein Problem auftreten muss durch eine Reihe von Logik, um herauszufinden, welche wiederhergestellt werden sollen, oder um Zustandsvariablen herum zu halten, etc.)

Hier ist meine Artikel-XML für das Optionsmenü:

<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" />

Ich habe auch in meinem Hauptaktivitätscode:

@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));
}

und

@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;
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage