参见英文答案 > What is use of android:supportsRtl=“true” in AndroidManifest xml file 3个
在Eclipse清单文件中,我收到一条警告消息.申请语言为土耳其语(不是从左到右).
“该项目引用了RTL属性,但未明确启用或禁用对清单中的android:supportsRtl的RTL支持”
我无法添加android:supportsRtl行,因为我的min sdk versionn是9.
这个警告很重要吗?
谢谢
解决方法:
如果您不支持RTL(=从右到左语言环境),则需要在xml布局中替换左侧和右侧的所有引用.
属性“start”,“end”,“paddingStart”,“paddingEnd”,“android:layout_alignParentStart”等等都是“RTL属性”:它们的含义取决于当前的语言环境.不这样做的风险是,如果有人将他们的系统语言设置为阿拉伯语或希伯来语,即使文本仍以土耳其语显示,您的布局也会被镜像.
具体而言,“开始”意味着“正确”,如果:
>目前的系统语言是RTL(阿拉伯语,希伯来语…)
>和Android设备是API 17或更高版本
> AND android:supportsRtl在清单中设置为true
否则意味着“离开”.
因此,如果您在任何布局中使用了android:layout_gravity =“start”或任何start / end属性,并且未在清单中设置android:supportsRtl =“true”,则会收到此警告.
请注意,如果您的min SDK为16或更低,并且您不想支持RTL,则实际上您必须选择以下警告之一:
>如果你用left替换start,你将收到警告:使用“start”而不是“left”来确保从右到左语言环境中的正确行为Id = RtlHardCoded
>如果将android:supportsRtl设置为false:属性“supportsRtl”仅用于API级别17及更高级别(当前最小值为9). ID = UnusedAttribute
>否则:**项目引用RTL属性,但没有在清单中明确启用或禁用android:supportsRtl的RTL支持** Id = RtlEnabled
如果您不支持RTL,将RtlHardCoded设置为Info而不是警告似乎是合乎逻辑的.
更多信息:
http://developer.android.com/guide/topics/manifest/application-element.html#supportsrtl