有些国家的布局方式是从右到左的,看起来就像是反过来了,比如阿拉伯语。项目中,经常会遇到这些国家的一些布局混乱问题。下面是我处理这些问题的一些总结。
首先,阿拉伯国家是从右到左的阅读方式,所以它的所有ui也是从右到左的排布。但是要使这个效果生效,必须得在相应应用的AndroidManifest.xml声明文件的<application>元素中,添加” android:supportsRtl=true ,需要注意的是,使用supportsRtl要求最低SDK版本为17 。
但是有时我们会发现在某些应用中,即使添加了android:supportsRtl=true属性,仍然存在有一部分的ui还是和常规语言一样从左往右的显示的。需要怎么处理呢?如果你的应用程序是针对Android 4.2目标平台(应用的targetSdkVersion或者minSdkVersion是17或者更高)。替换对应layout的“left/right”布局属性,改为”start/end”布局。例如paddingLeft paddingRight layout_marginLeft layout_marginRight layout_alignParentLeft layout_alignParentRight等等带有left/right字眼的属性,改为paddingStart paddingEnd等。如果你想让你的应用程序与Android 4.2之前的版本保持兼容(也就是与targetSdkVersion或者minSdkVersion为16或者更早的版本),那么你应当既加上 “start”和“end”,又加上“left”和“right”。例如,