Що таке андроїд: supportsRtl = “true” у xml-файлі AndroidManifest


89

Щоразу, коли я створював новий проект в андроїд-студії, я отримував android:supportsRtl="true"у своєму додатку файл AndroidManifest.

<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.03.17

Відповіді:


85

Декларує, чи бажає ваша програма підтримувати макети справа наліво (RTL). Якщо встановлено значення true, а targetSdkVersion встановлено на 17 або вище, різні RTL API будуть активовані та використовуватися системою, щоб ваш додаток міг відображати RTL-макети. Якщо встановлено значення false або якщо targetSdkVersion встановлено на 16 або нижче, API RTL буде ігноруватися або не матиме ніякого ефекту, і ваш додаток буде поводитися однаково незалежно від напрямку макета, пов’язаного з вибором локалі користувача (ваші макети завжди залишатимуться -праворуч).

Значенням цього атрибута за замовчуванням є 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-Guides:

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

Декларує, чи бажає ваша програма підтримувати макети справа наліво (RTL).

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

Значенням цього атрибута за замовчуванням є false.

Цей атрибут був доданий на рівні API 17.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.