如何设置整个应用程序的方向到RTL?

时间:2016-01-20 20:21:23

标签: android

我正在使用API​​ 17,我正在寻找一种方法将整个应用设置为rtl,而不是在每个活动布局中使用<android:layoutDirection="rtl">

3 个答案:

答案 0 :(得分:11)

我遇到了同样的问题,你需要做的只是考虑所有使用过的父容器(LinearLayoutRelativeLayoutGridView等)并将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。