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