【问题标题】:Disable automatic layout change on Android在 Android 上禁用自动布局更改
【发布时间】:2014-12-14 12:58:22
【问题描述】:

我已经制作了一个应用程序,我已经对其进行了测试,并且在我的手机上运行良好。但是...当我将 .apk 提供给电话语言为 RTL 的其他人时,整个布局都崩溃了,一切都搞砸了。

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

【问题讨论】:

    标签: java android user-interface layout


    【解决方案1】:

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

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

    注意:(关于第二行) 一些库在它们的清单文件中支持 Rtl,因此如果你想使用这些库,你必须用你的替换它们的清单代码行。

    【讨论】:

    • 也解决了我的问题。非常感谢。
    【解决方案2】:

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

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

    • 将应用的所有“左/右”布局属性更改为新的 “开始/结束”等价物。如果您将应用程序定位到 Android 4.2 (应用的 targetSdkVersion 或 minSdkVersion 为 17 或更高),然后 你应该使用“start”和“end”而不是“left”和“right”。为了 例如,android:paddingLeft 应变为 android:paddingStart。如果 您希望您的应用可以使用低于 Android 4.2 的版本( 应用程序的 targetSdkVersion 或 minSdkVersion 为 16 或更少),那么你 除了“左”和“右”之外,还应添加“开始”和“结束”。为了 例如,您将同时使用 android:paddingLeftandroid:paddingStart

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

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

    -- Source & Credits --

    【讨论】:

    • 我想禁用 RTL,无论如何,谢谢,问题是这条愚蠢的线似乎是自动添加的 Eclipse/AS,只是将其值更改为 false 并且它起作用了。
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      只需在您的应用主题样式中添加类似的内容:

      <item name="android:layoutDirection">ltr</item>
      or
      <item name="android:layoutDirection">rtl</item>
      

      【讨论】:

        猜你喜欢
        • 2012-11-25
        • 2016-06-04
        • 1970-01-01
        • 2017-09-22
        • 1970-01-01
        • 2015-08-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多