2012-12-13 30 views
7

我真的很受这个问题困扰。 我已经设置了国旗android:configChanges="keyboardHidden|orientation|locale"onConfigurationchanged不叫糖果豆(4.2.1)

但是当我改变语言的配置时,onconfigurationchanged函数没有被调用。 奇怪的是我的代码在其他android平台上工作正常。

我在这里搜索过这个问题。 有人说我需要设置sdk版本较低。但它没有奏效。

请给我一些提示。

回答

15

添加layoutDirection属性,如android:configChanges="keyboardHidden|orientation|locale|layoutDirection",如果你与API工作17

layoutDirection,它也与界面语言的变化连接API中引入17 Piece of android docsandroid:configChanges是不是这个事实足以明确,但至少我们有:

layoutDirection:布局方向已更改。例如,从 从左到右(LTR)更改为从右到左(RTL)。 添加到API级别17

+1

非常感谢。 :)你的答案正在工作。为什么我应该添加layoutDirection配置来检查locale是否被更改?这太奇怪了。 – user1900345

+1

它的工作!谢谢!但是,layoutDirection和locale之间的链接是什么?!? – Massimo

+0

layoutDirection和locale之间的链接支持从右到左的语言。 –

-12

如何配置AndroidManifest.xml这样?

安卓的minSdkVersion = “4” 机器人:targetSdkVersion = “17”

您需要删除的android:targetSdkVersion属性

4

从Android 4.2版本,布局方向将当我们改变更新语言。 然后我们必须添加“locale”和“layoutDirection”如下 android:configChanges =“locale | layoutDirection”, 那时onConfigurationChanged()将被调用。

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