Отключить автоматическое изменение макета на Android

Я сделал приложение, я его протестировал, и все было в порядке на моем телефоне. Но... когда я дал .apk кому-то другому, чей язык телефона RTL, весь макет сломался, и он все испортил.

Мой вопрос: как я могу заставить приложение использовать только LTR и отключить автоматическое изменение макета, которое разбивает весь мой дизайн приложения?

Ответ 1

В вашем файле манифеста и внутри тега приложения добавьте эти две строки.

<manifest>
    <application
        .
        .
        .
        android:supportsRtl="false"
        tools:replace="android:supportsRtl" //(replace libraries' Rtl support with ours)
        >
    </application>
</manifest>

Примечание: (около второй строки) Некоторые библиотеки поддерживают Rtl в своем файле манифеста, поэтому, если вы хотите использовать эти библиотеки, вы должны заменить свою манифестную строку кода своей.

Ответ 2

Android 4.2 добавила полную встроенную поддержку RTL-макетов. Чтобы воспользоваться зеркалированием макетов RTL, просто внесите следующие изменения в ваше приложение:

  • Объявите в своем приложении, что ваше приложение поддерживает зеркалирование RTL. В частности, добавьте android:supportsRtl="true" в в файле манифеста.

  • Измените все свойства макета вашего "влево/вправо" на новое эквивалент "начало/конец". Если вы нацеливаете свое приложение на Android 4.2 (приложение targetSdkVersion или minSdkVersion равно 17 или выше), затем вы должны использовать "start" и "end" вместо "left" и "right". Для Например, android:paddingLeft должен стать android:paddingStart. Если вы хотите, чтобы ваше приложение работало с версиями ранее Android 4.2 ( приложение targetSdkVersion или minSdkVersion равно 16 или меньше), то вы следует добавить "начало" и "завершить" в дополнение к "слева" и "справа". Например, вы используете как android:paddingLeft, так и android:paddingStart.

Для более точного контроля над пользовательским интерфейсом вашего приложения в режиме LTR и RTL, Android 4.2 включает в себя следующие новые API, которые помогут управлять компонентами View:

  • android: layoutDirection - атрибут для установки направления компоновка компонентов.
  • android: textDirection - атрибут для настройки направление текста компонента.
  • android: textAlignment - атрибут для настройки выравнивания текста компонента.
  • getLayoutDirectionFromLocale() - метод для получения Указанное в локали направление

- Источник и кредиты -

Ответ 3

Просто добавьте следующее в манифест

android:supportsRtl="false"
tools:replace="android:supportsRtl"