Я хочу написать текст в (справа налево, т.е. арабском) в TextView. Но я хочу, чтобы направление написания текста было справа налево. gravity:right
выравнивает текст только вправо. Я хочу оправдывать текст справа налево (чтобы слова и цифры отображались в порядке, указанном в строке). как?
Как сделать направление текста справа налево
Ответ 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 исправляет проблемы пунктуации, такие как точка с правой стороны, а не слева.
атрибут гравитации делает поток текста справа налево.