Android: So zentrieren Sie Titel in ToolBar

8

Ich verwende ToolBar zum ersten Mal in meinem Projekt, daher weiß ich nicht, wie ich die Symbolleiste in Android anpassen soll. Ich muss Titel in der Symbolleiste zentrieren und wie das geht, bitte sag es mir.

Vielen Dank im Voraus.

    
Umesh Kumar Saraswat 04.04.2015, 06:49
quelle

12 Antworten

27

Denken Sie daran, dass Toolbar nur ein ViewGroup wie die anderen ist. Du kannst also View s hineinstecken. In Ihrem Fall benötigen Sie ein TextView in einem Toolbar .

%Vor%

Stellen Sie nun Toolbar als Ihre Aktionsleiste ein, indem Sie sie zuerst abrufen und dann setSupportActionBar() verwenden.

Da die Schwere von TextView auf center eingestellt ist, muss der Text zentriert sein.

    
Little Child 04.04.2015 07:38
quelle
18

Das Problem beim einfachen Hinzufügen eines TextView in der ausgerichteten Werkzeugleiste der Werkzeugleiste besteht darin, Menüelemente in der Werkzeugleiste hinzuzufügen, die den zentrierten Text versetzen.

Um das zu umgehen, habe ich den Text über die Toolbar gelegt, nicht in der Toolbar. Auf diese Weise ist es egal, wie viele Symbole Sie hinzufügen, der zentrierte Text wird nicht verschoben:

%Vor%

Auf diese Weise gibt es keine Notwendigkeit für eine zusätzliche Logik für den Offset-Abstand der Zurück-Tasten / Überlaufmenü / Suche Icons etc. auf der Symbolleiste zu kompensieren, da der Text zentriert darüber ist, nicht drin.

    
jesobremonte 01.09.2016 12:49
quelle
7

ToolBar ist eine Ansichtsgruppe. so zu Zentrieren Sie den Text Verwenden Sie

app_bar.xml

%Vor%

activity_sign_up

%Vor%

Avtivity

%Vor%     
Umesh Kumar Saraswat 04.04.2015 07:39
quelle
6

Wenn Sie Home oder Up zusammen mit zentriertem Titel haben und der Titel nicht mehr zentriert ist und etwas nach rechts verschoben ist, stellen Sie Ihre Textansicht als width = wrap_content und layout_gravity = center

ein %Vor%     
Harry Aung 23.11.2015 03:13
quelle
6

Wenn Sie nur einen weiteren TextView in Toolbar einfügen, ist dies nicht ausreichend, um den Titel relativ zum Bildschirm zu zentrieren, seine Position hängt von anderen Elementen in einer Symbolleiste ab (Schaltfläche Zurück, Menüelemente).

Um Titel zentriert zu machen, können Sie die Position manuell einstellen:

Erweitern Sie android.support.v7.widget.Toolbar class und nehmen Sie folgende Änderungen vor:

  1. hinzufügen TextView
  2. überschreiben Sie onLayout() und legen Sie TextView location fest, um sie zu zentrieren ( titleView.setX((getWidth() - titleView.getWidth())/2) )
  3. überschreiben Sie setTitle() , wenn der Titeltext in die neue Textansicht
  4. gesetzt wurde
%Vor%

Im Layout können Sie diese Klasse wie folgt verwenden:

%Vor%

Damit neuer Titeltext wie Standardtitel aussieht, sollten Sie titleTextAppearance style auf new TextView ( titleView.setTextAppearance(context, textAppearanceStyleResId) ) anwenden.

    
user2137020 02.08.2016 16:54
quelle
6

Sie können die Werkzeugleiste in die Mitte zwingen, indem Sie die rechte und die rechte Padding-Ebene umbrechen, die standardmäßig den linken Padding für den Titel hat. Dann lege die Hintergrundfarbe auf das übergeordnete Element der Werkzeugleiste und so wird der Teil, der durch das Umbrechen des Titels ausgeschnitten wird, dieselbe Farbe (in meinem Beispiel weiß):

%Vor%     
tompadre 03.02.2017 19:48
quelle
4

Die endgültige Benutzeroberfläche sieht folgendermaßen aus: Für mein Projekt habe ich links das Navigationssymbol und rechts Menüs (mehr als 1) und möchte den Titel in der Mitte platzieren.

Ich habe setSupportActionBar(toolbar) und _actionBar.setCustomView(R.layout.actionbar_filter); . Meine Layoutdatei:

%Vor%

Meine Symbolleiste erweitert android.support.v7.widget.Toolbar, dann (Art von hartem Code) messen Sie die Größe des RelativeLayout, schließlich legen Sie es in horizontaler Mitte.

%Vor%

Fügen Sie mein Symbolleisten-Layout hinzu. Vielleicht brauchst du das nicht, ich fange nur hier an, um nach jemandem zu suchen:

%Vor%     
LiuWenbin_NO. 21.07.2017 10:10
quelle
1

Überprüfen Sie die vollständige Antwort hier: Ссылка

%Vor%     
Shatazone 01.03.2016 12:45
quelle
1

Verwenden Sie einen benutzerdefinierten Titel (mit Schwerpunkt) in der Symbolleiste

%Vor%     
ben10 12.06.2017 10:49
quelle
0

Ich habe dich nicht verstanden Frage Vollständig .. aber ich fand Solution Like this

Um einen benutzerdefinierten Titel in Ihrer Toolbar zu verwenden, müssen Sie nur daran denken, dass die Toolbar nur eine schicke ViewGroup ist, so dass Sie einen benutzerdefinierten Titel wie folgt hinzufügen können:

%Vor%

Dies bedeutet, dass Sie TextView beliebig formatieren können, da es sich nur um ein normales TextView handelt. In Ihrer Aktivität können Sie also wie folgt auf den Titel zugreifen:

%Vor%     
JayaSantoshKumar 04.04.2015 07:13
quelle
0

Sie können diesen Code in Ihren Code einfügen

%Vor%     
younes 10.05.2017 09:27
quelle
0

Soweit die Symbolleiste eine Ansichtsgruppe ist, können Sie Layouts darin erstellen. Befolgen Sie diese Schritte

1 - Erstellen Sie eine Textansicht in Ihrer Symbolleiste 2-machen Sie Ihre Textansicht Gravitationszentrum

%Vor%     
Kiarash 23.06.2017 19:46
quelle

Tags und Links