У меня есть простой TextView, который должен иметь android:gravity="left"
для локальных систем ltr и android:gravity="right"
для локальных систем rtl.
Очевидным выбором будет: android:gravity="start"
, но затем, например, английский текст всегда будет выровнен по левому краю и выравнивается по иврите.
Вот как это выглядит с помощью android:gravity="start"
:
Локаль LTR:
| לורם| // incorrect
|test | // correct
Язык RTL:
| לורם| // correct
|test | // incorrect
он должен выглядеть так:
Локаль LTR:
|לורם |
|test |
Язык RTL:
| לורם|
| test|
Можно ли это сделать без использования папки layout-ldrtl с измененным XML файлом? Это усложняло бы развитие, потому что мне пришлось бы редактировать много файлов макета дважды...
edit: достаточно решение для API 17+. Я написал системный язык, но на самом деле я разрешаю пользователю изменять язык приложения следующим образом:
Configuration configuration = context.getResources().getConfiguration();
configuration.setLayoutDirection(selectedLocale);
configuration.locale = selectedLocale;
context.getResources().updateConfiguration(configuration, context.getResources().getDisplayMetrics());
поэтому было бы здорово, если бы этот язык был рассмотрен для выбора rtl ↔ ltr.