我正在使用API 17,我正在寻找一种方法将整个应用程序设置为rtl而不是使用 <android:layoutDirection="rtl">
在每个活动布局中。
我正在使用API 17,我正在寻找一种方法将整个应用程序设置为rtl而不是使用 <android:layoutDirection="rtl">
在每个活动布局中。
我有同样的问题,你需要做的只是考虑所有你使用过的父容器(LinearLayout
, RelativeLayout
, GridView
等等,并将LayoutDirection设置为RTL,您可以通过ViewCompat类以低于17的api方式进行编程。
ViewCompat.setLayoutDirection(yourParentContainer,ViewCompat.LAYOUT_DIRECTION_RTL)
;
请注意,无需单独为子视图设置方向
请从Android开发者博客中查看此文本摘录:
要利用RTL布局镜像,只需进行以下操作即可 更改您的应用:
1-在您的应用清单中声明您的应用支持RTL镜像。 具体来说,将android:supportsRtl =“true”添加到 清单文件中的元素。
2-将应用程序的所有“左/右”布局属性更改为新的 “开始/结束”等价物。如果您将应用定位到Android 4.2 (应用程序的targetSdkVersion或minSdkVersion为17或更高),然后 你应该使用“开始”和“结束”而不是“左”和“右”。对于 例如,android:paddingLeft应该成为android:paddingStart。
如果您希望自己的应用能够使用早于Android 4.2的版本 (app的targetSdkVersion或minSdkVersion是16或更少),然后你 应该添加“开始”并结束“除了”左“和”右“。对于 例如,你同时使用android:paddingLeft和android:paddingStart。
全文可在此处找到:
http://android-developers.blogspot.ca/2013/03/native-rtl-support-in-android-42.html