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

Всякий раз, когда я создавал новый проект в студии 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 .


person pRaNaY    schedule 09.12.2015    source источник
comment
Я не считаю это повторяющимся вопросом. Оба относятся к RTL, но люди, которые ищут их, будут откладывать.   -  person SREE    schedule 25.08.2016
comment
Вопрос, на который это ссылается как на дубликат, неверен. Совершенно другой контекст для пользователя, ищущего вопрос.   -  person Jaydev    schedule 02.03.2017
comment
TLDR android.jlelse.eu /   -  person VVB    schedule 28.10.2018


Ответы (4)


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

Значение по умолчанию этого атрибута — false.

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

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

person Gex    schedule 09.12.2015

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

person Sarah    schedule 09.12.2015
comment
Лучше, чем документация Google. - person CopsOnRoad; 26.10.2017
comment
Спасибо другим ответам, но такой ответ более полезен и дополняет документацию. Спасибо @Сара. - person Nicoolasens; 15.05.2019
comment
привет, мое приложение не поддерживает арабский язык, но я использую android:supportsRtl=true в manifest.xml, это проблема? - person ozanurkan; 27.06.2019
comment
@osanurkan - Не проблема. Этот ответ неверен/вводит в заблуждение. android:supportsRtl="true" включает поддержку языков с письмом справа налево. Без этого макет всегда будет слева направо, Однако сам по себе это не меняет макет справа налево. Он просто включает другие атрибуты — один из этих новых атрибутов управляет направлением слева направо или справа налево. - person ToolmakerSteve; 02.12.2019

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

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

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

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

Значение по умолчанию этого атрибута — false.

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

person wasntme    schedule 09.12.2015

Если вы разрабатываете приложение, которое поддерживает RTL layouts (зеркальное отображение макета), вы должны позаботиться о двух вещах.

  1. Объявите о поддержке зеркалирования RTL в AndroidManifest.xml
<application
    android:supportsRtl="true">
</application>
  1. Используйте start/end вместо/в дополнение к left/right
android:margineLeft
android:margineStart
person yoAlex5    schedule 31.05.2021