63

TextView に (右から左の言語、つまりアラビア語) でテキストを書きたいと思います。しかし、私はテキストの書き込み方向を右から左にしたいと考えています。gravity:rightテキストを右にのみ揃えます。テキストを右から左に揃えたい (入力した順序で単語と数字が表示されるようにするため)。どうやって ?

4

12 に答える 12

63

Androidの古いバージョンで使用でき、文字列のどこでも使用できるため、最新バージョンのAndroidでも便利なもう1つの賢い方法は、文字列に右から左へのマークまたは左から右へのマークを含めることです必要な場合:

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 !

どうやって見ては 2 行目に正しく配置されており、実際にはその後に RLM があり、見えなくてもコピーして貼り付けることができます。

2 つ目の利点は、ブラウザーやワードなどの RTL をサポートする任意のシステムで、このメソッド (これらの char コード) を使用できることです。

于 2015-05-23T17:54:52.547 に答える
21

手遅れですが、android:gravity="right"うまくいきました。

于 2013-09-18T10:07:23.543 に答える
13

使ってみて

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

また

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);
于 2015-03-30T00:31:16.747 に答える
0

私のxmlコードで以下のように属性を使用すると、不思議なことに、正しい句読点で右から左へのテキストが得られました。しかし、これは多言語テキストの完璧な解決策ではありません:

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

ltr を設定すると、ドットが左側ではなく右側にあるなどの句読点の問題が修正されます。

重力属性により、テキストは右から左に流れます。

于 2017-08-10T17:20:47.253 に答える