onConfigurationchanged не вызывается через желе (4.2.1)

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

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

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

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

3 ответа

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

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

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

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

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

Вы настраиваете AndroidManifest.xml как это?

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

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

Другие вопросы по тегам