onConfigurationChanged не вызывается - PullRequest
136 голосов
/ 11 апреля 2011

Этим утром я столкнулся с проблемой при попытке обработать событие onConfigurationChanged. Проблема в том, что метод, который я переопределяю, не вызывается, когда я меняю ориентацию телефона. Не звонят вообще.

Я поставил android:configChanges="orientation" на активность, определенную в манифесте, как указано в документации Android, но это не имеет значения.

Вы столкнулись с этой проблемой?

Ответы [ 16 ]

3 голосов
/ 22 июля 2013

Я только что обнаружил, что если у вас есть:

android:screenOrientation="landscape"

в манифесте onConfigurationChanged () тоже не будет вызываться ...

это может быть похоже на:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

что установка ориентации блокирует onConfigurationChanged ().

1 голос
/ 24 января 2018

Ни одно из предложений не сработало для меня (у меня был собственный проект с этой проблемой), но после нескольких часов отладки я обнаружил, что если у вас есть эта строка в AppTheme styles.xml

<item name="android:windowIsTranslucent">true</item>

тогда приложение не будет вращаться.

1 голос
/ 23 июня 2017

@ thanhbinh84 Дайте мне понять, что может быть причиной этого.
Удаление <item name="android:windowIsTranslucent">true</item> из моей темы в styles.xml исправило это!

1 голос
/ 02 декабря 2016

Все решения не работают, но я пытаюсь удалить активность моей темы в файле манифеста Android.Так странно

<activity
        android:name="MyActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:theme="@style/MyTheme" --> remove this line
        />



<style name="MyTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="windowNoTitle">true</item>
    <item name="android:windowIsTranslucent">true</item>
</style>
0 голосов
/ 16 июля 2011

У меня была та же проблема, и в манифесте были указаны android: screenOrientation и android: configChanges.Когда я удалил первый, onConfigurationChanged () вызывается при вращении.Странно но это просыпается)

0 голосов
/ 11 апреля 2011

Есть ли у вас android.content.res.Configuration в ваших заявлениях на импорт?Eclipse может вставлять импорт автоматически, если вы нажмете Ctrl+Shift+O.

Если этого не произойдет, компилятор не сможет распознать, что вы законно переопределяете метод суперкласса, и выдает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...