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

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

 Adham09 июн. 2012 г., 23:08
как установить Попробуйте добавить символ ПРАВО-НА-ЛЕВЫЙ МАРК (\ u200F) ?? такое это & gt; & gt; tv.setText (& quot; & quot; Мой арабский текст & quot;);
 Genia S.09 июн. 2012 г., 22:52
Я считаю, что это отвечает на ваш вопрос. Он помечен как правильный ... Я не проверял его, чтобы убедиться, что он * действительно правильный, но похоже, что он должен работать.stackoverflow.com/questions/6302221/…
 Genia S.09 июн. 2012 г., 23:16
Я думаю, что, как я уже сказал, я не пробовал, но это похоже на правильный подход

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

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

android:textDirection="anyRtl"
 09 авг. 2013 г., 08:08
показывает ошибку этот код
 09 окт. 2013 г., 06:10
все в порядке ,,, он показывал ошибку с ADT & lt; 20
 12 сент. 2017 г., 01:22
Если вышеприведенное не сработало, попробуйтеandroid:textAlignment="viewStart"
 18 окт. 2015 г., 21:55
Attribute "textDirection" is only used in API level 17 and higher (current min is 13)
 08 окт. 2013 г., 22:52
@ Исключительно, какую ошибку вы получаете?

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

или же

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);
 01 апр. 2015 г., 12:01
Работает хорошо! Начиная с API 17

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

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

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

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

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

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

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

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

android:textDirection="rtl"

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

который можно использовать в более старых версиях 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 и так далее.

 29 дек. 2015 г., 20:16
молодец спасибо братан
 03 сент. 2015 г., 10:42
Это добилось цели. Хорошо сделано. Любой побочный эффект?
 08 мар. 2018 г., 11:55
спасение жизни. Спасибо
 08 сент. 2015 г., 14:14
@SaeedNeamati Эти символы добавляются в UTF именно для этой цели, поэтому до тех пор, пока движок рендеринга учитывает их, не будет никакого побочного эффекта, как в случае с Android. Единственное, в некоторых шрифтах для этих кодов существует глиф представления, и они отображаются при использовании этих символов. Вы должны удалить их глифы, используя некоторые инструменты редактора шрифтов, такие как создатель шрифта.

      android:textDirection="rtl"

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

     android:textDirection="rtl"
     android:gravity="right"
 16 июн. 2017 г., 10:03
Для меня было важно использоватьandroid:textDirection="anyRtl" вместо того, чтобы просто использоватьrtl в дополнение к вашему предложению.

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

 android:textDirection="locale"
 01 мар. 2017 г., 06:32
работал на меня для арабских текстов
 25 окт. 2018 г., 14:23
У меня есть отдельные XML-макет для арабского дизайна
 23 окт. 2018 г., 12:41
Это не работает
 01 мар. 2017 г., 06:45
и устанавливает текст как для арабского ... myTextView.settext (& quot; \ u200F "+" quot; text ")

android:gravity="right" работал.

 08 окт. 2017 г., 19:27
Подскажите, пожалуйста, почему текстовое направление не работает?
 04 мар. 2015 г., 10:42
это приведет к путанице в смешанном тексте, нумерации, скобках и т. д., безусловно, используйте android: gravity = & quot; right & quot; /увидеть:android-developers.blogspot.co.il/2013/03/…

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