Intereting Posts
Поверните представление макета Android вокруг его центра, используя сенсорный прослушиватель Приложение Android не входит в Market: как продвигать обновления? Как захватить длинное событие пресса для элемента Listeview ListActivity? Могу ли я эмулировать обновление приложения с помощью АБР? Не удается разрешить метод maketext () Toast Смена громкости? OpenDrawer из espresso contrib устарел Как объявить несколько стилируемых атрибутов с тем же именем для разных тегов? Привязка элемента веб-страницы к Android-приложению Firebase запускает слишком много сигналов тревоги Возможно ли подключить API Карт Google через обратный прокси-сервер в моем приложении? Как включить консольный вывод в тестах Android Unit? Почему объявить аргумент функции окончательным? Android – сбой приложений на устройствах Pre-Lollipop Предупреждение. Экспортированная деятельность не требует разрешения.

Правый выравнивающий текст в android TextView

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

 android:gravity="right" 

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

Что я могу делать неправильно?

Solutions Collecting From Web of "Правый выравнивающий текст в android TextView"

Я думаю, что вы это делаете: android:layout_width = "wrap_content"
Если это так, сделайте следующее: android:layout_width = "match_parent"

В общем, android:gravity="right" отличается от android:layout_gravity="right" .

Первый влияет на положение самого текста в представлении, поэтому, если вы хотите, чтобы он был выровнен по правому краю, тогда layout_width= должен быть либо "fill_parent" либо "match_parent" .

Второй влияет на позицию View внутри его родителя, другими словами – выравнивание самого объекта (окно редактирования или текстовое представление) внутри родительского представления.

Лучшее решение – это самое простое, а другое – меньшее изменение в коде .

Что делать, если вы можете решить эту проблему только с помощью двух свойств в вашем TextView ?

Вместо необходимости изменять свойства LinearLayout которые могут изменить поведение LinearLayout элементов LinearLayout ?

Используя этот способ, вам не нужно изменять свойства и поведение LinearLayout , вам нужно добавить только два следующих свойства в ваш целевой TextView :

 android:gravity="right" android:textAlignment="gravity" 

Что было бы лучше изменить только вашу цель, чтобы решить ваше решение вместо того, чтобы иметь возможность вызвать еще одну проблему в будущем, изменив целевого отца? думаю об этом 🙂

android:layout_gravity используется для выравнивания текстового представления относительно родительского макета. android:gravity используется для выравнивания текста внутри текстового вида.

Вы уверены, что пытаетесь выровнять текст внутри текстового представления вправо или хотите переместить текстовое представление вправо относительно родительского макета или пытаетесь выполнить

Убедитесь, что вы не используете android:layout_width="wrap_content" если это так, тогда он не сможет установить гравитацию, потому что у вас недостаточно места для выравнивания текста. Вместо этого используйте android:layout_width="fill_parent"

Сделайте (LinearLayout) android:layout_width="match_parent" и android:layout_gravity="right" TextView android:layout_gravity="right"

 android:gravity="right" 

Он в основном используется в линейной компоновке, поэтому вам нужно установить ширину TextView или EditText как

 android:layout_width = "match_parent" 

а также

Когда вы работаете в Relative Layout, используйте

 android:layout_alignParentRight="true" 

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

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

В то время как android_gravity работает как text_align:centre|left|right

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

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

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

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

 <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.

Если в RelativeLayout вы можете использовать android:layout_toRightOf="@id/<id_of_desired_item>"

Или

Если вы хотите выровнять по right углу устройства, установите android:layout_alignParentRight="true"

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

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

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

  android:layout_alignParentRight="true" android:layout_centerVertical="true" 

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

android:textAlignment="textStart"

Следующий фрагмент кода:

 android:textAlignment="textEnd" android:layout_gravity="end" 

Отлично работает для меня

 <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> 

Делает первый номер в центре как горизонтальным, так и вертикальным.