63

我想在 TextView 中用(从右到左的语言,即阿拉伯语)编写文本。但我想让文字书写方向从右到左。gravity:right只会将文本右对齐。我想从右到左对齐文本(使单词和数字出现在他输入的行中)。如何 ?

4

12 回答 12

63

另一种可以在旧版本的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,即使它不可见,您也可以复制粘贴它。

您看到的第二个好处是您可以在任何支持 RTL 的系统(如浏览器、word 等)中使用此方法(这些字符代码)。

于 2015-05-23T17:54:52.547 回答
49

只需将此属性放在您的 TextView 中,一切都会正常运行,它会自动检测您的文本并相应更改

android:textDirection="anyRtl"
于 2013-06-20T18:51:24.830 回答
21

为时已晚,但android:gravity="right"奏效了。

于 2013-09-18T10:07:23.543 回答
18

在xml中为 textview设置这一行:

 android:textDirection="locale"
于 2017-03-01T05:32:18.933 回答
13

尝试使用

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

或者

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);
于 2015-03-30T00:31:16.747 回答
7

在正常编辑文本的情况下,这将起作用

      android:textDirection="rtl"

但是在密码字段的情况下,这还不够,请遵循此;

     android:textDirection="rtl"
     android:gravity="right"
于 2016-07-04T17:23:44.633 回答
7

使用android:layoutDirection="rtl"andandroid:textAlignment="viewStart"使文本视图从右到左。

于 2018-10-25T06:57:42.453 回答
3

试试这个,因为它对我有用android:textDirection="rtl"

于 2015-09-13T03:51:29.743 回答
2

将这些添加到您的editText:

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

PS:android:textDirection需要 API 级别 17

于 2017-07-29T13:48:24.633 回答
0

只是添加我自己对此类问题的经验。在我的情况下,除了建议的解决方案之外,我还必须用这种字符 ״ 的 RTL(在我的情况下为希伯来语)表示替换英文 " 字符

于 2016-05-31T07:55:50.513 回答
0

通过在我的 xml 代码中奇怪地使用如下属性,我得到了一个从右到左的带有正确标点符号的文本。但这不是多语言文本的完美解决方案:

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

设置 ltr 可以纠正标点符号问题,例如右侧有点而不是左侧。

重力属性使文本从右向左流动。

于 2017-08-10T17:20:47.253 回答
0

TextView 的最佳方式 textDirection,不要使用 layoutDirection

  <TextView
     android:id="@+id/viewCountTv"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:textDirection="anyRtl"
     android:gravity="center"/>
于 2018-05-17T15:14:22.270 回答