问题
I really suffer from this issue.
I already set the flag android:configChanges="keyboardHidden|orientation|locale"
But when I changed configuration of language, onconfigurationchanged
function isn't called.
The strange thing is that my codes work fine over other android platform.
I searched this issue here.
Someone said that I need to set sdk
version lower. But it didn't work.
Please give me some tips.
回答1:
Add the layoutDirection
attribute, such as android:configChanges="keyboardHidden|orientation|locale|layoutDirection"
if you're working with API 17.
layoutDirection
that is also connected with interface language changes was introduced in API 17. Piece of android docs about android:configChanges
is not explicit enough about that fact, but at least we have:
layoutDirection: The layout direction has changed. For example, changing from left-to-right (LTR) to right-to-left (RTL). Added in API level 17.
回答2:
From Android 4.2, layout direction will be updated when we change language. Then we have to add both "locale" and "layoutDirection" as below android:configChanges="locale|layoutDirection", that time onConfigurationChanged() will be called.
This is similar with "orientation" and "screenSize" in API 13.
回答3:
do u config AndroidManifest.xml like this?
android:minSdkVersion="4" android:targetSdkVersion="17"
you need to remove android:targetSdkVersion attribute
来源:https://stackoverflow.com/questions/13856229/onconfigurationchanged-is-not-called-over-jellybean4-2-1