The project references RTL attributes, but does not explicitly enable or disable RTL support [duplicate]

左心房为你撑大大i 提交于 2019-11-28 20:28:44

If you do not support RTL (= Right To Left locales), you need to replace all references of start by left and end by right in your xml layouts.

The attributes "start", "end", "paddingStart", "paddingEnd", "android:layout_alignParentStart" etc.. are "RTL attributes" : their meaning depends on the current locale. The risk of not doing this is that if someone sets their system language to Arabic or Hebrew your layouts will be mirrored, even if the text is still displayed in Turkish.

Specifically "start" means "right" if:

  • the current system language is RTL (Arabic, Hebrew...)
  • AND the android device is API 17 or higher
  • AND android:supportsRtl is set to true in the manifest

Otherwise is means "left".

So you get this warning if you have used android:layout_gravity="start" or any start/end attribute in any of your layout and you have not set android:supportsRtl="true" in the manifest.

Note that, if your min SDK is 16 or below and you do not want to support RTL, you actually have to choose one of the warning:

  • if you do replace start with left you will get the warning :Use "start" instead of "left" to ensure correct behavior in right-to-left locales Id=RtlHardCoded
  • if you set android:supportsRtl to false: Attribute "supportsRtl" is only used in API level 17 and higher (current min is 9). Id=UnusedAttribute
  • otherwise: ** The project references RTL attributes, but does not explicitly enable or disable RTL support with android:supportsRtl in the manifest** Id=RtlEnabled

If you do not support RTL, it seems logical to set RtlHardCoded to Info instead of warning.

More info:

http://android-developers.blogspot.co.il/2013/03/native-rtl-support-in-android-42.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog)

http://developer.android.com/guide/topics/manifest/application-element.html#supportsrtl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!