Icon / title für actionbar mit erweitertem SearchView entfernen?

Ich habe ein neues Projekt erstellt, das auf api 11 und höher zielt. Ich habe eine Aktivität, wo ich möchte, dass ein SearchView standardmäßig erweitert wird:

@Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.menu_search, menu); MenuItem searchItem = menu.findItem(R.id.action_search); mSearchView = (SearchView) searchItem.getActionView(); mSearchView.setIconifiedByDefault(false); } 

Was funktioniert, aber ich möchte keine ikon oder titel auf der actionbar, nur die suchansicht. Ich habe versucht, meinen Titel und meine Ikone loszuwerden, indem ich:

  • Scroll up funktioniert nicht mit SwipeRefreshLayout in Listview
  • Schützen Sie Androide Anwendung von Piraterie
  • Wie würde ein Thread, der von einer App erstellt wurde, als eine andere App aus dem ContentProvider der App betrachtet werden?
  • "IntentReceiver-Komponenten dürfen sich nicht registrieren, um Absicht zu erhalten", wenn versucht wird, den Batteriestand zu bestimmen
  • Android Studio - Emulator - eglSurfaceAttrib nicht implementiert
  • Android: Wie stelle ich die Zoom-Ebene der Kartenansicht auf 1 km Radius um meine aktuelle Position?
  •  getActionBar().setDisplayHomeAsUpEnabled(false); getActionBar().setDisplayShowTitleEnabled(false); getActionBar().setIcon(android.R.color.transparent); 

    Aber meine Actionbar hat noch diese Polsterung links von der Suchansicht:

    Bildbeschreibung hier eingeben

    Gibt es einen Weg, um es loszuwerden?

    Vielen Dank

    ——– Bearbeiten ——————–

    Hier ist meine Tätigkeit in vollem Umfang:

     public class GreatAndroid extends FragmentActivity { private SearchView mSearchView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionBar().setDisplayShowHomeEnabled(false); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem mi = menu.findItem(R.id.action_search); mSearchView = (SearchView) mi.getActionView(); mSearchView.setIconifiedByDefault(false); return true; } } 

    Und hier ist das Menü xml:

     <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:showAsAction="always" android:actionViewClass="android.widget.SearchView" /> </menu> 

  • Wie kann man Google + Karten-UI in einer Listenansicht erstellen?
  • Android JNI - Anrufen AttachCurrentThread ohne DetachCurrentThread
  • Deaktiviere einen Schlüssel auf der benutzerdefinierten Tastatur in Android
  • Fehler: (23, 17) Fehler beim Auflösen: junit: junit: 4.12
  • Wie kann man überprüfen, ob Webview die Seite nicht geladen hat (Android)?
  • Ist es möglich, eine ListView von unten zu füllen?
  • 3 Solutions collect form web for “Icon / title für actionbar mit erweitertem SearchView entfernen?”

    Obwohl das Icon transparent ist, nimmt es immer noch den Platz ein:

     getActionBar().setIcon(android.R.color.transparent); 

    Entfernen Sie diese Zeile und fügen Sie hinzu:

     getActionBar().setDisplayShowHomeEnabled(false); 

    Jetzt solltest du das SuchView aufnehmen.

    Aktionselemente, die zusammengebrochen werden können, haben eine maximale Breite. Der einzige Workaround, den ich mir vorstellen kann, ist folgendes:

     public class GreatAndroid extends FragmentActivity { private SearchView mSearchView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionBar().setDisplayShowHomeEnabled(false); getActionBar().setDisplayShowTitleEnabled(false); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.menu_search, menu); MenuItem mi = menu.findItem(R.id.action_search); mSearchView = (SearchView) mi.getActionView(); mSearchView.setIconifiedByDefault(false); // You can use Display.getSize(Point) from API 13 onwards. // For API 11 and 12, use Display.getWidth() final Point p = new Point(); getWindowManager().getDefaultDisplay().getSize(p); // Create LayoutParams with width set to screen's width LayoutParams params = new LayoutParams(px, LayoutParams.MATCH_PARENT); mSearchView.setLayoutParams(params); return true; } } 

    Obwohl es so aussieht, dass es noch Platz auf der linken Seite gibt, kannst du mSearchView.setBackgroundColor(Color.RED); Zu sehen, dass es wirklich nicht gibt

    Ich konnte nicht @ Vikram's Awnser zu arbeiten, aber ich fand, dass eine andere Antwort von Stack Overflow:

    Öffnen Sie Ihre styles.xml-Datei und fügen Sie unten Codes in Ihrem Actionbar-Stil hinzu

     <item name="android:displayOptions">showHome|homeAsUp|showTitle</item> <item name="displayOptions">showHome|homeAsUp|showTitle</item> <item name="android:icon">@android:color/transparent</item> <--this do the magic! 

    P / s: Ich benutze Actionbar Sherlock und das funktioniert ganz gut

    (Siehe Entfernen von Symbol / Logo aus der Aktionsleiste auf Android- Arbeit)

    In Bezug auf die linke Polsterung können Sie versuchen, collapseActionView

    Hier ist ein Beispielmenü:

     <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" android:icon="@android:drawable/ic_menu_search" android:title="@string/search_hint" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom|collapseActionView" /> </menu> 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.