Wie bekomme ich android action bar title center ausgerichtet?

Ich habe meine eigene, benutzerdefinierte Action-Bar ausgesucht, um den Action-Bar-Titel auf die Mitte zu stellen. Es funktionierte. Nachdem ich das Optionsmenü in der Aktionsleiste hinzugefügt habe, kehrte der Titel wieder nach links. Was soll ich tun, um den Titel in die Mitte der Aktionsleiste zu bringen? Mein Code ist:

ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(false); actionBar.setDisplayShowCustomEnabled(true); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayUseLogoEnabled(false); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); View cView = getLayoutInflater().inflate(R.layout.custom_actionbar, null); actionBar.setCustomView(cView); 

Und mein Layout ist

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@android:color/holo_blue_light" android:orientation="vertical" > <TextView android:id="@+id/apptitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center_horizontal|center_vertical" android:gravity="center_horizontal|center_vertical" android:text="@string/app_name" /> 

  • Zentrieren eines Hintergrundbildes in Android
  • Gibt es sowieso einen EditText-Start in die obere linke Ecke des EditText?
  • Richten Sie die Ansichten des Kindes in der Mitte des ViewPagers android aus
  • Wie man den Titel in der Mitte von ActionBar im Standardthema ausgibt (Theme.Holo.Light)
  • Android lineare Layout Ausrichtung Mitte und rechts
  • Wie man zwei Ansichten innerhalb eines relativen Layouts zentriert?
  • 2 Solutions collect form web for “Wie bekomme ich android action bar title center ausgerichtet?”

    Ich bin sicher, Sie verwenden die unten, um Ihr benutzerdefiniertes Thema zu setzen.

     getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.abs_layout); 

    Wenn nicht, dann füge bitte die erste Zeile hinzu. Und der Text in deinem benutzerdefinierten Layout ist zentriert. (Gravity = Center)

    Auch hier habe ich einen ähnlichen Link gefunden . Hoffe das hilft.

    Probieren Sie es auch aus.

    Ich war in der Lage zu erreichen, was ich wollte, indem ich nicht den Titel der Aktivität zeigte und stattdessen eine benutzerdefinierte Ansicht, wie Sie vorgeschlagen haben. Der Schlüssel, den ich für eine Weile verpasst habe, musst du die Methode setCustomView (View, ActionVar.LayoutParams) verwenden, um die benutzerdefinierte Ansicht zentriert zu erhalten, indem du einfach ein Layout_gravity = "center" in der benutzerdefinierten View-Layoutdatei einbringt. Hier ist ein kurzer Code-Snippet, der zeigt, wie ich es an die Arbeit gebracht habe:

      TextView customView = (TextView) LayoutInflater.from(this).inflate(R.layout.actionbar_custom_title_view_centered, null); ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER); customView.setText("Some centered text"); getSupportActionBar().setCustomView(customView, params); 

    Diese Methode arbeitet für mich auf mindestens 3.2, 2.3 und 2.2 Geräten.

    Quelle https://groups.google.com/forum/#!msg/actionbarsherlock/A9Ponma6KKI/Llsp41jWLEgJ

    Erstellen Sie zuerst eine .xml-Datei wie folgt: (action_bar.xml)

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/actionbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:maxLines="1" android:clickable="false" android:focusable="false" android:longClickable="false" android:textStyle="bold" android:textSize="18sp" android:textColor="#000000" /> </LinearLayout> 

    Und dann in deiner Tätigkeit:

     View view = getLayoutInflater().inflate(R.layout.action_bar, null); ActionBar.LayoutParams params = new ActionBar.LayoutParams( ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER); TextView Title = (TextView) view.findViewById(R.id.actionbar_title); Title.setText("Your Title"); getSupportActionBar().setCustomView(view,params); getSupportActionBar().setDisplayShowCustomEnabled(true); //show custom title getSupportActionBar().setDisplayShowTitleEnabled(false); //hide the default title 

    Ich habe viele Lösungen ausprobiert und nur diese funktioniert. Hoffe es hilft dir

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.