Выровнять текст по правому краю в Android TextView - PullRequest
204 голосов
/ 23 января 2012

У меня есть TextView в моем приложении. Я хочу выровнять текст справа. Я попытался добавить:

android:gravity="right"

Но это не работает для меня.

Что я могу делать не так?

Ответы [ 19 ]

4 голосов
/ 02 мая 2016

Позвольте мне объяснить концепцию гравитации, используя WEB , потому что многие разработчики знают об этом.

android_layout_gravity ведет себя float:left|right|top|bottom

Принимая во внимание, что android_gravity работает как text_align:centre|left|right

В Android float есть android_layout_gravity и text_align: is android_gravity.

И android_layout_gravity применяется относительно родителя.где asroid_gravity применяется к своему дочернему или внутреннему содержимому.

Примечание android_gravity работает только тогда, когда его View равен match_parent (когда у него есть место для центра).

3 голосов
/ 26 февраля 2016

Ниже работает для меня:

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sarah" />

<TextView
    android:id="@+id/tv_distance"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/tv_username"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@+id/tv_username"
    android:text="San Marco"
    android:textAlignment="viewEnd" />

Обратите внимание на android:layout_alignParentEnd и android:textAlignment настройки второго TextView.

2 голосов
/ 09 июня 2017

это должно служить цели

android:textAlignment="textStart"

2 голосов
/ 01 июня 2017

Вы можете использовать:

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
1 голос
/ 25 февраля 2018

В моем случае я использовал Relative Layout для emptyString

После борьбы с этим в течение часа.Только у меня это сработало:

android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"

layout_toRightOf или layout_toEndOf оба работают, но для лучшей поддержки я использовал оба.

Чтобы было более понятно:

Это то, что я пытался сделать:

enter image description here

А это был выход эмулятора

enter image description here

Макет:

<TextView
    android:id="@+id/welcome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="Welcome "
    android:textSize="16sp" />
<TextView
    android:id="@+id/username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@id/welcome"
    android:layout_toRightOf="@id/welcome"
    android:text="@string/emptyString"
    android:textSize="16sp" />

Обратите внимание, что:

  1. android:layout_width="wrap_content" работает
  2. Gravity не используется
1 голос
/ 31 июля 2017
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">

  <TextView
    android:id="@+id/tct_postpone_hour"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_gravity="center"
    android:gravity="center_vertical|center_horizontal"
    android:text="1"
    android:textSize="24dp" />
</RelativeLayout>

выравнивает номер один по центру по горизонтали и вертикали.

1 голос
/ 26 сентября 2016

Я также столкнулся с той же проблемой и решил, что проблема произошла, так как layout_width TextView имел wrap_content. Вы должны иметь layout_width как match_parent и андроид: gravity = "gravity"

0 голосов
/ 08 мая 2019

Я использовал атрибут "layout_alignRight" в моем случае, в тексте его:

android:layout_alignRight="@+id/myComponentId"

Если вы хотите добавить правое поле, просто установите для атрибута «Layout_Margin Right» значение «20dp», например, в тексте:

android:layout_marginRight="20dp"
0 голосов
/ 05 августа 2014

попробуйте добавить android:gravity="center" в TextView

...