OnConfigurationchanged не вызывается над jellybean (4.2.1)

Я действительно страдаю от этой проблемы. Я уже установил флаг android:configChanges="keyboardHidden|orientation|locale"

Но когда я изменил настройку языка, функция onconfigurationchanged не вызывается. Странно, что мои коды отлично работают над другой платформой Android.

Я искал эту проблему здесь. Кто-то сказал, что мне нужно установить sdk версию ниже. Но это не сработало.

Пожалуйста, дайте мне несколько советов.

Ответ 1

Добавьте атрибут layoutDirection, например android:configChanges="keyboardHidden|orientation|locale|layoutDirection", если вы работаете с API 17.

layoutDirection, который также связан с изменениями языка интерфейса, был введен в API 17. Часть документации android о android:configChanges не достаточно ясна об этом факте, но по крайней мере мы имеем:

layoutDirection: Изменено направление макета. Например, переход от слева направо (LTR) справа налево (RTL). Добавлен в уровень API 17.

Ответ 2

От Android 4.2 направление макета будет обновляться при смене языка. Затем мы должны добавить как "locale", так и "layoutDirection", как показано ниже Android: configChanges = "локаль | LayoutDirection", на этот раз будет вызываться onConfigurationChanged().

Это похоже на "ориентация" и "screenSize" в API 13.

Ответ 3

do u config AndroidManifest.xml как это?

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

вам нужно удалить атрибут android: targetSdkVersion