Для чего используется android: supportsRtl = «true» в XML-файле AndroidManifest


89

Всякий раз, когда я создавал новый проект в студии Android, я получал android:supportsRtl="true"в своем приложении AndroidManifest File.

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
...
</application>

Что используется в приложении или какие преимущества и недостатки, когда я добавляю или не добавляю в свое приложение AndroidManifest.


5
Я не считаю это повторяющимся вопросом. Оба относятся к RTL, но люди, которые ищут их, откладывают.
SREE

2
Вопрос, на который ссылаются как на дубликат, неверен. Совершенно другой контекст для поиска пользователем вопроса.
Jaydev 02

Ответы:


85

Объявляет, готово ли ваше приложение поддерживать макеты с письмом справа налево (RTL). Если установлено значение true, а targetSdkVersion - 17 или выше, различные API-интерфейсы RTL будут активированы и использоваться системой, чтобы ваше приложение могло отображать макеты RTL. Если установлено значение false или для targetSdkVersion установлено значение 16 или ниже, RTL API будут игнорироваться или не будут иметь никакого эффекта, и ваше приложение будет вести себя одинаково независимо от направления макета, связанного с выбором локали пользователя (ваши макеты всегда будут оставаться -направо).

По умолчанию этот атрибут имеет значение false.

Этот атрибут был добавлен в API уровня 17.

(Источник: http://developer.android.com/guide/topics/manifest/application-element.html )


73

если вы строите приложение на арабском, урду, иврит и т.д. ... или любой язык , который написан справа налево , вы должны установить , android:supportsRtlчтобы true, вот как вы говорите макет быть справа налево, а значение по умолчанию этот атрибут ложный.


14
Лучше, чем документация Google.
CopsOnRoad

1
Спасибо другим ответам, но такой ответ более полезен и дополняет документацию. Спасибо, @Sarah.
Nicoolasens

привет, мое приложение не поддерживает арабский язык, но я использую android: supportsRtl = "true" в manifest.xml. Это проблема?
ozanurkan

3
@ozanurkan - Не проблема. Этот ответ неверен / вводит в заблуждение. android:supportsRtl="true"включает поддержку языков с письмом справа налево. Без этого макет всегда будет слева направо, однако сам по себе он не изменяет макет справа налево. Он просто включает другие атрибуты - один из этих новых атрибутов определяет, будет ли он писать слева направо или справа налево.
ToolmakerSteve

10

Из руководств по Android API:

(developer.android.com/guide/topics/manifest/application-element.html)

Объявляет, готово ли ваше приложение поддерживать макеты с письмом справа налево (RTL).

Если установлено значение true, а targetSdkVersion - 17 или выше, различные API-интерфейсы RTL будут активированы и использоваться системой, чтобы ваше приложение могло отображать макеты RTL. Если установлено значение false или для targetSdkVersion установлено значение 16 или ниже, RTL API будут игнорироваться или не будут иметь никакого эффекта, и ваше приложение будет вести себя одинаково независимо от направления макета, связанного с выбором локали пользователя (ваши макеты всегда будут оставаться -направо).

По умолчанию этот атрибут имеет значение false.

Этот атрибут был добавлен в API уровня 17.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.