我想在TextView中写从右到左的语言(如阿拉伯语)文本。但我想将文本编写方向从右到左。 gravity:right
将仅使文本对齐到右侧。我想使文本从右到左对齐(以让单词和数字按输入顺序显示在同一行中)。如何实现?
我想在TextView中写从右到左的语言(如阿拉伯语)文本。但我想将文本编写方向从右到左。 gravity:right
将仅使文本对齐到右侧。我想使文本从右到左对齐(以让单词和数字按输入顺序显示在同一行中)。如何实现?
另一种聪明的方式,可用于旧版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等。
只需要将这个属性放入你的TextView中,一切都会很好地解决,它会自动检测你的文本并做出相应的改变。
android:textDirection="anyRtl"
android:textAlignment="viewStart"
。 - My House虽然有点晚了,但是 android:gravity="right"
起作用了。
将这行代码放入XML中的textview中:
android:textDirection="locale"
尝试使用
textview.setTextDirection(View.TEXT_DIRECTION_RTL);
或者 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);
android:layoutDirection="rtl"
和 android:textAlignment="viewStart"
来使文本视图从右到左显示。 android:textDirection="rtl"
但是,在密码字段的情况下,这还不够,需要按照以下步骤处理:
android:textDirection="rtl"
android:gravity="right"
android:textDirection="anyRtl"
而不仅仅是按照您的建议使用rtl
。 - antonis_standroid:gravity="right"
android:textDirection="rtl"
PS: android:textDirection
需要API 17级别支持。
我建议您尝试这个方法,因为它对我有效:android:textDirection="rtl"
TextView的最佳文本方向,不要使用layoutDirection
<TextView
android:id="@+id/viewCountTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textDirection="anyRtl"
android:gravity="center"/>
layoutDirection
的信息吗? - Juan M. Rivero