在Android上禁用自动布局更改

时间:2014-10-19 12:26:10

标签: java android user-interface layout

我已经制作了一个应用程序,我已经对它进行了测试,而且我的手机也没问题。但是......当我把.apk给手机语言为RTL的其他人时,整个布局都破了,搞砸了所有东西。

我的问题是 - 如何强制我的应用仅使用LTR并禁用自动布局更改,这会破坏我的整个应用设计?

3 个答案:

答案 0 :(得分:15)

在清单文件和应用程序标记内添加这两行。

<manifest>
    <application
        .
        .
        .
        android:supportsRtl="false"
        tools:replace="android:supportsRtl" //(replace libraries' Rtl support with ours)
        >
    </application>
</manifest>

注意:(约第二行) 有些库在其清单文件中支持Rtl,因此如果要使用这些库,则必须用它们替换它们的清单代码行。

答案 1 :(得分:9)

Android 4.2为RTL布局添加了完全原生支持。要利用RTL布局镜像,只需对您的应用进行以下更改:

  • 在您的应用清单中声明您的应用支持RTL镜像。 具体来说,将android:supportsRtl="true"添加到 清单文件中的元素。

  • 将所有应用的“左/右”布局属性更改为新属性 “开始/结束”等价物。如果您将应用定位到Android 4.2 (应用程序的targetSdkVersion或minSdkVersion为17或更高),然后 你应该使用“开始”和“结束”而不是“左”和“右”。对于 例如,android:paddingLeft应该成为android:paddingStart。如果 您希望您的应用程序能够使用早于Android 4.2的版本( app的targetSdkVersion或minSdkVersion是16或更少),然后你 应该添加“开始”和结束“除了”左“和”右“。对于 例如,您同时使用android:paddingLeftandroid:paddingStart

为了在LTR和RTL模式下更精确地控制您的应用UI,Android 4.2包含以下新API以帮助管理View组件:

  • android:layoutDirection - 用于设置方向的属性 组件的布局。
  • android:textDirection - 用于设置的属性 组件文本的方向。
  • android:textAlignment - 属性 用于设置组件文本的对齐方式。
  • getLayoutDirectionFromLocale() - 获取的方法 区域设置指定的方向

-- Source & Credits --

答案 2 :(得分:0)

只需将以下内容添加到清单

android:supportsRtl="false"
tools:replace="android:supportsRtl"