2012-12-13 51 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」類似。