Center Inhalt des TextView-vertikal & horizontal - LinearLayout
Ich versuche, um die Mitte der Kontext einer TextView horizontal und vertikal. Bitte siehe den folgenden screenshot.
Den TextViews, die sagen 1-5
und 100+ Points
sind die, die ich soll vertikal zentriert und horizontal. Wie Sie sehen können, sind Sie center-horizontal, aber nicht vertikal. Unten ist der code, den ich verwende.
<LinearLayout
android:id="@+id/linearlayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/l1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:paddingTop="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:textSize="12sp"
android:gravity="center_vertical|center_horizontal" />
<TextView
android:id="@+id/g1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:paddingTop="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:textSize="12sp"
android:gravity="center_vertical|center_horizontal" />
<TextView
android:id="@+id/c1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:paddingTop="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:textSize="12sp"
android:gravity="center_vertical|center_horizontal" />
</LinearLayout>
Wieder, diese Frage ist wie die Mitte der Inhalt des TextViews, nicht wie Mitte der TextViews im LinearLayout. Also, wie ich Mitte der Inhalt in beide Richtungen in die TextViews?
- Versuchen android:layout_gravity. Auch, beobachten Sie Ihre Eltern Höhe. Wenn es nur Packungen der Inhalt der Positionierung könnte keine Wirkung haben.
- verwenden height=match_parent, so dass alle Elemente die gleiche Höhe und können zentriert werden, oder die Schwerkraft=center in Ihrer horizontalen layout.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist Ihr problem:
Ihre
TextView
's eingestellt sindwrap_content
, was bedeutet, es gibt keinen Raum, der vertikal ausgerichtet. Um dies zu beheben, stellen Sie eine Feste Zeile-Höhe. In meinem Beispiel unten habe ich verwendet 50dp; jedoch, es kann eingestellt werden, alles, was Sie möchten.P. S -
android:gravity="center"
beiden Griffecenter_vertical
undcenter_horizontal
.Werfen Sie diesen code in und check it out!
Sieht es aus wie android ist die Zentrierung der Grundlinie des Textes, nicht der text istself.
Hier ist ein netter blog-post über das leidige problem: http://www.doubleencore.com/2013/10/shifty-baseline-alignment/
In summay, linear layout versucht zu richten untergeordneten Ansichten durch Ihre text-Grundlinie, wenn möglich. Es ist eine xml-flag, um dieses Verhalten zu deaktivieren:
android:baselineAligned
, was Sie können versuchen, die Einstellung zufalse
.Können Sie überprüfen, dieser Beitrag
Die Android-Ansicht Gruppen beschäftigen, um eine Vorstellung von LayoutParams, die Analog sind zu den layout-constraints verwendet, die von Swing-Layout-Manager. Die LayoutParams die Art und Weise konfigurieren Sie die Android-Ansicht-Gruppe legt es die Kinder Ansichten. In Android die GUI kann entweder gebaut Programmierung mit Hilfe von Java-code oder mit einer XML-Datei. Die Struktur der XML-Elemente entspricht der Struktur des View Objekts, das Sie erstellen können programmgesteuert. Die XML-Attribute werden verwendet, um zu konfigurieren, das Layout Params.
Und konfigurieren Sie die Schwerkraft in das layout.