码迷,mamicode.com
首页 > 其他好文 > 详细

The project references RTL attributes, but does not explicitly enable or disable RTL support 解决办法

时间:2015-03-14 16:33:42      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

If you do not support RTL (= Right To Left locales), you need to replace all references of start by left and end byright 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

 

The project references RTL attributes, but does not explicitly enable or disable RTL support 解决办法

标签:

原文地址:http://www.cnblogs.com/yongdaiblog-201409/p/4337566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!