如何从右到左制作文本方向

时间:2012-06-09 20:50:24

标签: android textview right-to-left

我想在TextView中用(从右到左的语言,即阿拉伯语)编写文本。但我想让文字从右到左书写方向。 gravity:right会将文字对齐。我想从右到左证明文本的合理性(使单词和数字出现在他按行输入的顺序中)。怎么样?

12 个答案:

答案 0 :(得分:49)

另一种可以在旧版本的Android中使用的聪明方法,可以在字符串中的任何地方使用,因此即使在最新版本的android中它也很方便,包括从右到左标记< / strong>或者甚至需要从左到右标记

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

这就是它的失败:

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

关于这种方法的好处是你甚至可以在标点之后使用它,例如(,{,[,!)位置错误!示例:

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

看看是如何在第二行正确定位的,实际上它后面有一个RLM,即使它不可见,你也可以复制它。

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

答案 1 :(得分:42)

只需将此属性放入TextView即可,所有内容都可以正常运行,它会自动检测您的文本并进行相应更改

android:textDirection="anyRtl"

答案 2 :(得分:18)

太晚了,但android:gravity="right"工作了。

答案 3 :(得分:9)

xml 中为textview设置此行:

 android:textDirection="locale"

答案 4 :(得分:6)

尝试使用

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);

答案 5 :(得分:5)

如果是正常的编辑文本,这将起作用

      android:textDirection="rtl"

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

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

答案 6 :(得分:2)

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

答案 7 :(得分:2)

将这些添加到您的editText:

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

PS:android:textDirection需要API等级17

答案 8 :(得分:1)

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

答案 9 :(得分:0)

只是添加我自己的经验与这些问题。在我的情况下,除了建议的解决方案,我还必须用RTL(在我的情况下希伯来语)代替英文“字符”这样的字符“

答案 10 :(得分:0)

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

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

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

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

答案 11 :(得分: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"/>