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.
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
.
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.
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.
ToolBar ist eine Ansichtsgruppe. so zu Zentrieren Sie den Text Verwenden Sie
app_bar.xml
%Vor%activity_sign_up
%Vor%Avtivity
%Vor%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% 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:
TextView
onLayout()
und legen Sie TextView
location fest, um sie zu zentrieren ( titleView.setX((getWidth() - titleView.getWidth())/2)
) setTitle()
, wenn der Titeltext in die neue Textansicht 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.
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%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:
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%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%