Отключить автоматическое изменение макета на 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"