Подтвердить что ты не робот

Как сделать направление текста справа налево

Я хочу написать текст в (справа налево, т.е. арабском) в TextView. Но я хочу, чтобы направление написания текста было справа налево. gravity:right выравнивает текст только вправо. Я хочу оправдывать текст справа налево (чтобы слова и цифры отображались в порядке, указанном в строке). как?

4b9b3361

Ответ 1

Другим умным способом, который может быть использован в старых версиях android и может использоваться в любом месте в строке, чтобы он мог работать даже в последней версии Android, должен включать знак справа налево или даже слева направо в строке, когда это необходимо:

left-to-right mark: ‎ or ‎ (U+200E)
right-to-left mark: ‏ or ‏ (U+200F)

Вот как это делается:

String rtl = "Hello \u200F(سلام)";

Хорошая вещь об этом методе - вы можете даже использовать его после пунктуации, как (, {, [,!, которые расположены неправильно неправильно! примеры:

سلام! // wrong position
سلام!‏ // right position by adding RLM after !

Посмотрите, как ! позиционируется правильно во второй строке, на самом деле после него есть RLM, и вы можете скопировать его, даже если он невидим.

Вторая хорошая вещь, которую вы видели, заключается в том, что вы можете использовать этот метод (эти коды char) в любой системе, которая поддерживает RTL, например, браузеры, слова и т.д.

Ответ 2

Просто поместите это свойство в свой TextView, и все будет отлично работать, он автоматически обнаружит ваш текст и соответственно изменит

android:textDirection="anyRtl"

Ответ 3

Слишком поздно, но android:gravity="right" работал.

Ответ 4

В случае нормального текста редактирования это будет работать

      android:textDirection="rtl"

Но в случае полей пароля этого недостаточно, следуйте этому примеру:

     android:textDirection="rtl"
     android:gravity="right"

Ответ 5

Android: textDirection = "локаль"

//установите эту строку в xml для textview.

Ответ 6

Попробуйте использовать

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

или

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);

Ответ 7

попробуйте это, поскольку это сработало для меня android:textDirection="rtl"

Ответ 8

просто добавив свой собственный опыт с такими проблемами. в моем случае в дополнение к предлагаемым решениям мне также пришлось заменить английский "характер RTL (в моем случае ивритом) представление такого символа"

Ответ 9

Добавьте их в свой editText:

android:gravity="right"
android:textDirection="rtl"

PS: android:textDirection требуется уровень API 17

Ответ 10

Используя атрибуты, как показано ниже в моем xml-коде, я получил право на левый текст с правильной пунктуацией. Но это не идеальное решение для текста с несколькими языками:

android:textDirection="ltr"
android:gravity="right"

настройка ltr исправляет проблемы пунктуации, такие как точка с правой стороны, а не слева.

атрибут гравитации делает поток текста справа налево.