【问题标题】:onConfigurationchanged is not called over jellybean(4.2.1)onConfigurationchanged 不通过 jellybean 调用(4.2.1)
【发布时间】:2012-12-01 03:06:16
【问题描述】:

我真的很受这个问题的困扰。 我已经设置了标志android:configChanges="keyboardHidden|orientation|locale"

但是当我更改语言配置时,onconfigurationchanged 函数没有被调用。 奇怪的是我的代码在其他安卓平台上运行良好。

我在这里搜索了这个问题。 有人说我需要将sdk版本设置低一些。但它没有用。

请给我一些建议。

【问题讨论】:

    标签: android android-4.2-jelly-bean


    【解决方案1】:

    如果您使用 API 17,请添加 layoutDirection 属性,例如 android:configChanges="keyboardHidden|orientation|locale|layoutDirection"

    在 API 17 中引入了与界面语言更改相关的layoutDirectionPiece of android docs 关于android:configChanges 对这一事实不够明确,但至少我们有:

    layoutDirection:布局方向发生了变化。例如,从 从左到右 (LTR) 到从右到左 (RTL)。 在 API 级别 17 中添加

    【讨论】:

    • 非常感谢。 :) 你的答案是有效的。为什么要添加 layoutDirection 配置来检查语言环境是否更改?太奇怪了。
    • 成功了!谢谢!但是,layoutDirection 和 locale 之间的联系是什么?!?
    • layoutDirection 和 locale 之间的联系是支持从右到左的语言。
    【解决方案2】:

    从 Android 4.2 开始,当我们更改语言时,布局方向将会更新。 然后我们必须添加“locale”和“layoutDirection”,如下所示 android:configChanges="locale|layoutDirection", 届时将调用 onConfigurationChanged()。

    这与 API 13 中的“orientation”和“screenSize”类似。

    【讨论】:

      【解决方案3】:

      你是这样配置 AndroidManifest.xml 的吗?

      android:minSdkVersion="4" android:targetSdkVersion="17"

      你需要移除 android:targetSdkVersion 属性

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-21
        相关资源
        最近更新 更多