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

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

Ответы на вопрос(12)

использованиеandroid:layoutDirection="rtl" а такжеandroid:textAlignment="viewStart" сделать просмотр текста справа налево.

установить эту строку вxml для просмотра текста:

 android:textDirection="locale"

лучший способ textDirection для TextView,Don't use layoutDirection

  <TextView
     android:id="@+id/viewCountTv"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textDirection="anyRtl"
     android:gravity="center"/>

Добавьте их в ваш текст редактирования:

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

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

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

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

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

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

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

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

left-to-right mark: &lrm; or &#x200e; (U+200E)
right-to-left mark: &rlm; or &#x200f; (U+200F)

Вот как это происходит:

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

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

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

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

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

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

      android:textDirection="rtl"

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

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

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

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

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

или же

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);

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

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

android:textDirection="anyRtl"

Ваш ответ на вопрос