7

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.

Renjith
  • 5,783
  • 9
  • 31
  • 42
user1900345
  • 81
  • 1
  • 1
  • 3

3 Answers3

14

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.

riwnodennyk
  • 8,140
  • 4
  • 35
  • 37
6

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.

namnl2706
  • 61
  • 1
  • 4
-13

do u config AndroidManifest.xml like this?

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

you need to remove android:targetSdkVersion attribute

houshunwei
  • 33
  • 2