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