我想在TextView中用(从右到左的语言,即阿拉伯语)编写文本。但我想让文字从右到左书写方向。 gravity:right
会将文字对齐。我想从右到左证明文本的合理性(使单词和数字出现在他按行输入的顺序中)。怎么样?
答案 0 :(得分:49)
另一种可以在旧版本的Android中使用的聪明方法,可以在字符串中的任何地方使用,因此即使在最新版本的android中它也很方便,包括从右到左标记< / strong>或者甚至需要从左到右标记:
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的任何系统中使用这种方法(这些字符代码),如浏览器,单词等。
答案 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"/>