Я пытаюсь добавить поддержку языка RTL в моем приложении (особенно на арабском прямо сейчас). Я тоже буду поддерживать английский. Что я сделал:
- Установите minSdkVersion на 17
- Добавлен
android:supportsRtl="true"
для моего тега приложения вAndroidManifest.xml
- Поменял мои левые/правые атрибуты на начало/конец
Сначала я внес эти изменения вручную, затем я использовал пункт меню Android Studio "Refactor → Add RTL Support Where возможный...".
При предварительном просмотре файлов макета я вижу, что предварительный просмотр RTL правильно отражает пользовательский интерфейс; однако даже когда я использую "Force Layout Direction", мое приложение не отображает RTL-макет. Системный интерфейс перевернут, так что эта опция работает в целом.
Что еще нужно сделать, чтобы показать макет RTL? Я надеюсь, что упустил что-то очевидное. Я тестирую это на эмуляторе API 21.
Обновить
Я унаследовал часть этого кода. Возможно, что-то переопределяет настройку и переводит ее в режим LTR. Я сделал тестовое приложение, чтобы проверить режим RTL, и он работал нормально. Какой код может привести к тому, что параметр "Force RTL Layout Direction" будет проигнорирован (или переопределен)?
Обновление 2
Я проверил, что языковой стандарт устанавливается правильно, и это так. Я также проверил конфигурацию, и ldrtl
установлен. Я проверил в подписанном файле APK, что android:supportsRtl
сделал это и ни один из файлов макета не было android:layoutDirection="ltr"
. Я даже пытался вручную положить android:layoutDirection="rtl"
чтобы попытаться заставить макет зеркально android:layoutDirection="rtl"
, но это тоже не сработало. '
Обновление 3
Я добавил еще одно действие в проект, сделал его активностью запуска и убедился, что оно не связано с каким-либо существующим кодом. Это подкласс Activity
. Проблема все еще существует. Так что теоретически это проблема конфигурации. Как я уже сказал, я проверил файл AndroidManifest.xml и все файлы макетов, которые были сгенерированы, а также внесены изменения в поддержку RTL и макет. Что может быть не так с конфигурацией?