onConfigurationchanged is not called over jellybean(4.2.1)

情到浓时终转凉″ 提交于 2019-12-28 16:04:06

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!