web-dev-qa-db-ja.com

テキストの方向を右から左にする方法

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

44
Adham

古いバージョンのAndroidで使用でき、文字列のどこでも使用できるため、最新バージョンのAndroidでもより便利な別の巧妙な方法は、right-to-左マークまたは偶数左から右マーク必要な場合は文字列内:

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番目に良い点は、ブラウザー、WordなどのRTLをサポートする任意のシステムでこのメソッド(これらの文字コード)を使用できることです。

50
Ali

このプロパティをTextViewに配置するだけで、すべてがうまく機能し、自動的にテキストが検出され、それに応じて変更されます

Android:textDirection="anyRtl"
42
RaedMarji

遅すぎますが、Android:gravity="right"働いた。

18
losingsleeep

textviewのxmlでこの行を設定します。

 Android:textDirection="locale"
10
arshad shaikh

使用してみてください

 textview.setTextDirection(View.TEXT_DIRECTION_RTL);

または

 textview.setTextDirection(View.TEXT_DIRECTION_ANY_RTL);
6
Iman Marashi

通常の編集テキストの場合、これは機能します

      Android:textDirection="rtl"

ただし、パスワードフィールドの場合、これだけでは不十分です。

     Android:textDirection="rtl"
     Android:gravity="right"
6
manDroid

それが私のために働いたのでこれを試してくださいAndroid:textDirection="rtl"

2
user2876982

これらをeditTextに追加します。

Android:gravity="right"
Android:textDirection="rtl"

PS:Android:textDirection AP​​Iレベル17が必要

2
Kaaveh Mohamedi

つかいます Android:layoutDirection="rtl"およびAndroid:textAlignment="viewStart"は、テキストビューを右から左に表示します。

1
Armin

textViewの最適な方法textDirection、layoutDirectionを使用しない

  <TextView
     Android:id="@+id/viewCountTv"
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content"
     Android:textDirection="anyRtl"
     Android:gravity="center"/>
0
Rasoul Miri

このような問題に関する自分の経験を追加するだけです。私の場合、提案された解決策に加えて、英語の文字をそのような文字のRTL(私の場合はヘブライ語)表現に置き換える必要がありました״

0
Liran Cohen

奇妙なことに、XMLコードで次のような属性を使用することにより、正しい句読点の付いた右から左のテキストが得られました。しかし、これは多言語テキストの完璧な解決策ではありません。

Android:textDirection="ltr"
Android:gravity="right"

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

gravity属性は、テキストを右から左に流します。

0
Lord Tesla