Ich habe eine TextView
in meiner Bewerbung. Ich möchte den Text darin rechts ausrichten. Ich habe versucht hinzuzufügen:
android:gravity="right"
Aber das funktioniert bei mir nicht.
Was könnte ich falsch machen?
Ich denke, dass Sie dies tun: android:layout_width = "wrap_content"
Wenn dies der Fall ist, tun Sie dies:android:layout_width = "match_parent"
Im Allgemeinen
android:gravity="right"
unterscheidet sich vonandroid:layout_gravity="right"
.Der erste wirkt sich auf die Position des Texts selbst in der Ansicht aus. Wenn Sie also möchten, dass er rechtsbündig ausgerichtet ist,
layout_width=
sollte er entweder"fill_parent"
oder sein"match_parent"
.Die zweite betrifft die Position der Ansicht innerhalb des übergeordneten Elements, dh das Objekt selbst (Bearbeitungsfeld oder Textansicht) in der übergeordneten Ansicht ausrichten.
quelle
Die bessere Lösung ist die einfachste und die, die Ihr Codeverhalten weniger verändert .
Was ist, wenn Sie dieses Problem nur mit 2 Eigenschaften auf Ihrem lösen können
TextView
?Anstatt Ihre
LinearLayout
Eigenschaften ändern zu müssen , kann dies möglicherweise das Verhalten vonLinearLayout
Kindern ändern?Auf diese Weise müssen Sie
LinearLayout
Eigenschaften und Verhalten nicht ändern, sondern nur die beiden folgenden Eigenschaften zu Ihrem Ziel hinzufügenTextView
:Was wäre besser, wenn Sie nur Ihr Ziel ändern würden, um Ihre Lösung zu lösen, anstatt die Chance zu haben, in Zukunft ein weiteres Problem zu verursachen und Ihren Zielvater zu modifizieren? Denk darüber nach :)
quelle
TextView
Immobilie zugreifen ? - Sie können die Eigenschaft von der Referenz hier überprüfen: developer.android.com/reference/android/view/…android:layout_gravity
wird verwendet, um die Textansicht in Bezug auf das übergeordnete Layout auszurichten.android:gravity
wird verwendet, um den Text in der Textansicht auszurichten.Sind Sie sicher, dass Sie versuchen, den Text in der Textansicht nach rechts auszurichten, oder möchten Sie die Textansicht selbst in Bezug auf das übergeordnete Layout nach rechts verschieben, oder möchten Sie beide erreichen?
quelle
Das folgende Code-Snippet:
funktioniert gut für mich
quelle
Für den Fall, dass jemand noch braucht
quelle
Stellen Sie sicher, dass Sie nicht verwenden,
android:layout_width="wrap_content"
wenn dies der Fall ist. In diesem Fall kann die Schwerkraft nicht eingestellt werden, da nicht genügend Platz für die Ausrichtung des Texts vorhanden ist. Verwenden Sie stattdessenandroid:layout_width="fill_parent"
quelle
Es wird grundsätzlich im linearen Layout verwendet, daher müssen Sie die Breite von TextView oder EditText als festlegen
und
Wenn Sie im relativen Layout arbeiten, verwenden Sie
quelle
Erstellen Sie das (LinearLayout)
android:layout_width="match_parent"
und das TextViewandroid:layout_gravity="right"
quelle
Wenn es in ist
RelativeLayout
, können Sie verwendenandroid:layout_toRightOf="@id/<id_of_desired_item>"
Oder
Wenn Sie
right
den Ort an der Ecke des Geräts ausrichten möchtenandroid:layout_alignParentRight="true"
quelle
android_layout_gravity
verhältfloat:left|right|top|bottom
Während
android_gravity
arbeiten alstext_align:centre|left|right
In Android float ist android_layout_gravity und text_align: ist android_gravity.
Und android_layout_gravity gilt relativ zum übergeordneten Element. Dabei gilt android_gravity für den untergeordneten oder inneren Inhalt.
Beachten Sie, dass android_gravity nur funktioniert, wenn seine Ansicht match_parent ist (wenn Platz zum Zentrieren vorhanden ist).
quelle
Unten funktioniert für mich:
Bitte beachten Sie die
android:layout_alignParentEnd
undandroid:textAlignment
Einstellungen der zweiten Textansicht.quelle
Sie können verwenden:
quelle
Dies sollte den Zweck erfüllen
android:textAlignment="textStart"
quelle
In meinem Fall habe ich
Relative Layout
für eine verwendetemptyString
Nachdem ich eine Stunde lang damit gekämpft hatte. Nur das hat bei mir funktioniert:
layout_toRightOf
oderlayout_toEndOf
beides funktioniert, aber um es besser zu unterstützen, habe ich beide verwendet.Um es klarer zu machen:
Das habe ich versucht:
Und das war die Ausgabe des Emulators
Layout:
Beachte das:
android:layout_width="wrap_content"
funktioniertGravity
ist nicht benutztquelle
Ich hatte auch das gleiche Problem und stellte fest, dass das Problem auftrat, da die layout_width der TextView einen wrap_content hatte. Sie müssen layout_width als match_parent und den Android haben: Gravity = "Gravity"
quelle
macht Nummer eins in der Mitte sowohl horizontal als auch vertikal ausgerichtet.
quelle
versuchen , hinzuzufügen ,
android:gravity="center"
inTextView
quelle
Ich habe in meinem Fall das Attribut "layout_alignRight" verwendet.
Wenn Sie einen rechten Rand hinzufügen möchten, setzen Sie einfach das Attribut "Layout_Margin Right" auf "20dp", zum Beispiel im Text:
quelle