私は単純なTextViewを持っています。これはltrシステムロケールではandroid:gravity="left"
、rtlシステムロケールではandroid:gravity="right"
です。TextViewの重力のためにロケール(ltr/rtl)を使用
明らかな選択肢は、android:gravity="start"
です。英語のテキストは常に左揃えで、ヘブライは右揃えになります。
LTRロケール:
| לורם| // correct
|test | // incorrect
そのように見えることになっています:
LTRロケール:
| לורם| // incorrect
|test | // correct
RTLロケールここ
はandroid:gravity="start"
で、それがどのように見えるかです:
|לורם |
|test |
RTLロケール:
| לורם|
| test|
それが変更されたXMLファイルでレイアウトldrtlフォルダを使用せずにそれを行うことは可能ですか?これは、多くのレイアウトファイルを2回編集する必要があるため、開発が複雑になるでしょう...
編集: API 17+の解決策で十分です。 は、私は、システムのロケールを書いたが、実際に私は、ユーザーがそのようなアプリの言語を変更することができている:
Configuration configuration = context.getResources().getConfiguration();
configuration.setLayoutDirection(selectedLocale);
configuration.locale = selectedLocale;
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());
このロケールがRTL <ためと考えられるならばそれは素晴らしいことだ - > LTRの選択。
英語のテキストは左から右にレンダリングされます。私は重力が始まると思います。 – Bhargav
はい、まさに私の問題です。 RTLロケールが設定されているときにRTLを強制する方法はありますか? – agrajag
がtextdirection属性を追加しようとしましたか?しかし、それは唯一のAPIの17 +私は – Bhargav