ActionBar SearchView wird nicht vollständig im Querformat ausgebaut

Bei der Verwendung der Action-Bar-Suchoberfläche wird das Widget erweitert, um die volle Breite des Bildschirms im Hochformat-Modus zu belegen, stoppt aber im Querformat.

Gibt es eine Möglichkeit, die Erweiterungs-Layout-Parameter auf dem SearchView zu setzen, um die Aktionsleiste vollständig zu füllen, wenn der Benutzer eine Suche eingibt?

  • Android Facebook Sdk Import Fehler
  • Android-Anwendung Ladebildschirm
  • Wie kann man die Verwendung von ausgelaufenem Keystore und Passwort verhindern?
  • So definieren Sie gemeinsame androide Eigenschaften für alle Module mit gradle
  • So erstellen Sie Ihre eigene Magento mobile Anwendung für Android und iPhone
  • Android: Eine Listenansicht mit Array-Elementen ausfüllen
  • Siehe Bild: http://i.imgur.com/3z8ZbJA.png

    Hinweis: Ich verwende derzeit nicht ActionBar Sherlock

    Bearbeiten: Hier ist was ich getan habe, um es zu bekommen, um die volle Breite zu verlängern.

    searchView.setOnSearchClickListener(new OnClickListener() { private boolean extended = false; @Override public void onClick(View v) { if (!extended) { extended = true; LayoutParams lp = v.getLayoutParams(); lp.width = LayoutParams.MATCH_PARENT; } } }); 

  • TextView Text ändern
  • Java.io.FileNotFoundException: Diese Datei kann nicht als Dateideskriptor geöffnet werden. Es ist wahrscheinlich komprimiert
  • Wie man das Gerät auf natürliche (Standard) -Orientierung auf Android überprüft (dh die Landschaft für zB Motorola Charm oder Flipout)
  • Android - Unbekannte Attribut-Stil auf einem Fragment-Tag
  • Test NEON-optimierte cv :: Schwelle () auf Mobilgerät
  • Android: Http Post mit Parameter funktioniert nicht
  • 6 Solutions collect form web for “ActionBar SearchView wird nicht vollständig im Querformat ausgebaut”

    Hast du so etwas probiert?

     editView.setOnKeyListener(new OnKeyListener() { private boolean extended = false; @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (!extended && event.getAction() == KeyEvent.ACTION_DOWN) { extended = true; LayoutParams lp = v.getLayoutParams(); lp.width = LayoutParams.MATCH_PARENT; } return false; } }); 

    MenuItemCompat's SearchView hat eine Eigenschaft namens maxWidth.

      final MenuItem searchItem = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); searchView.setMaxWidth(xxx); 

    Verwenden Sie die Bildschirmbreite anstelle von xxx offcourse

    Ich habe eine Lösung für die vollständige Erweiterung der Suchansicht in der Landschaft herausgefunden und auch die Aktionsansicht bereits erweitert, wenn die Aktivität erstellt wird. Hier wie es funktioniert:

    1.First eine XML-Datei in Ihrem Res-Menü-Ordner zum Beispiel: searchview_in_menu.xml erstellen. Hier hättest du den folgenden Code:

      <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_search" android:title="@string/search" android:icon="@android:drawable/ic_menu_search" android:actionLayout="@layout/searchview_layout" /> </menu> 

    Hinweis: "@ string / search" – sieht so etwas in der res-strings.xml aus:

      <string name="search">Search</string> 

    2.Second erstellen Sie das oben genannte Layout ("@ layout / searchview_layout") im Res-Layout-Ordner. Das neue Layout: searchview_layout.xml sieht so aus:

      <?xml version="1.0" encoding="utf-8"?> <SearchView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/search_view_layout" android:layout_width="match_parent" android:layout_height="wrap_content"/> 

    Anmerkung: Hier setzen wir die Suchansichtsbreite auf die Breite des übergeordneten Elements (android: layout_width = "match_parent")

    3.In deiner MainActivity-Klasse oder in der Aktivität, die die Suchansicht implementieren muss, schreiben Sie in der onCreateOptionsMenu () – Methode den folgenden Code:

     @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.searchview_in_menu, menu); //find the search view item and inflate it in the menu layout MenuItem searchItem = menu.findItem(R.id.action_search); mSearchView = (SearchView) searchItem.getActionView(); //set a hint on the search view (optional) mSearchView.setQueryHint(getString(R.string.search)); //these flags together with the search view layout expand the search view in the landscape mode searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItem.SHOW_AS_ACTION_ALWAYS); //expand the search view when entering the activity(optional) searchItem.expandActionView(); return true; } 

    Passen Sie die Breite Layout param auf MATCH_PARENT , so dass die SearchView vollständig erweitern in Porträt oder Landschaft

     ViewGroup.LayoutParams layoutParams = mSearchView.getLayoutParams(); layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; 

    Für ActionBarCompat verwenden Sie diese:

      MenuItemCompat.setShowAsAction(searchItem, MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItem.SHOW_AS_ACTION_ALWAYS); MenuItemCompat.expandActionView(searchItem); 

    Benutze das (100%):

     mSearchView = (SearchView) searchItem.getActionView(); mSearchView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.