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

Adh*_*ham 46 android textview right-to-left

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

Ali*_*Ali 51

另一种巧妙的方式,也可以在老版本的Android中使用,并且可以因此它的使用方便性,即使在Android的最新版本字符串的任何地方使用时,要包括右至左符号,甚至左至右符号的字符串什么时候需要:

left-to-right mark: ‎ or ‎ (U+200E)
right-to-left mark: ‏ or ‏ (U+200F)
Run Code Online (Sandbox Code Playgroud)

这就是它的失败:

String rtl = "Hello \u200F(????)";
Run Code Online (Sandbox Code Playgroud)

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

????! // wrong position
????!? // right position by adding RLM after !
Run Code Online (Sandbox Code Playgroud)

看怎么样!在第二行中正确定位,实际上在它之后有一个RLM,即使它不可见,你也可以复制它.

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

  • 这成功了。辛苦了 有副作用吗? (2认同)
  • @SaeedNeamati这些字符正是为此目的而添加到UTF中的,因此只要渲染引擎尊重它们,就不会有副作用,在android中就是这种情况。唯一的是,在某些字体中,这些代码存在表示形式的标志符号,并且在使用这些字符时会显示它们。您必须使用某些字体编辑器工具(如字体创建器)删除其字形。 (2认同)

Rae*_*rji 43

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

android:textDirection="anyRtl"
Run Code Online (Sandbox Code Playgroud)

  • `属性“ textDirection”仅在API级别17和更高级别中使用(当前最小值为13)。 (3认同)
  • 如果以上不起作用,请尝试`android:textAlignment ="viewStart"` (3认同)

los*_*eep 18

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


ars*_*ikh 13

xml中为textview 设置此行:

 android:textDirection="locale"
Run Code Online (Sandbox Code Playgroud)


man*_*oid 7

如果是正常的编辑文本,这将有效

      android:textDirection="rtl"
Run Code Online (Sandbox Code Playgroud)

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

     android:textDirection="rtl"
     android:gravity="right"
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,使用`android:textDirection =“ anyRtl”`至关重要,而不是在您的建议之外仅使用`rtl`。 (2认同)

Ima*_*shi 6

尝试使用

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);
Run Code Online (Sandbox Code Playgroud)

要么

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);
Run Code Online (Sandbox Code Playgroud)


Arm*_*min 5

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