【发布时间】:2015-01-08 13:17:20
【问题描述】:
我正在尝试制作我的应用程序的布局,其中将包括对 RTL 语言的支持。目标 SDK 版本将是 15+。我在所有布局文件中都使用了 start/end as well 作为左/右,但是我注意到布局在 api 级别 17 (Android 4.2) 上无法正常使用 RTL 语言。 Api 级别 18 及以上似乎可以很好地处理双重定义(开始和左侧),所以我想知道为什么布局在 17 级混乱。根据下面的文字,我希望 17 级的行为与 18+ 相同.
Native RTL support in Android 4.2:
如果您将应用定位到 Android 4.2(应用的 targetSdkVersion 或 minSdkVersion 为 17 或更高),那么您应该 使用“start”和“end”而不是“left”和“right”。例如, android:paddingLeft 应该变成 android:paddingStart。
如果您希望您的应用可以使用低于 Android 4.2 的版本(该应用的 targetSdkVersion 或 minSdkVersion 为 16 或更少),那么您应该添加 除了“左”和“右”之外,还有“开始”和“结束”。例如,你会 同时使用 android:paddingLeft 和 android:paddingStart。
【问题讨论】:
-
一种解决方法可能是为 api 17 及更高版本创建单独的布局文件,但肯定有更有效的方法来处理这个问题?
-
这方面有什么进展吗?
-
面临完全相同的问题。如果我删除 Left、Right,API 级别 17 上的布局会有所改进,但如果我同时使用 left 和 start、right 和 end,那么 API 级别 17 上的布局会变得混乱,但它在 17+ 上运行良好。我的应用支持 minSDK 8,所以我不能省略左右限定符。
标签: android android-layout arabic android-4.2-jelly-bean right-to-left