onConfigurationChanged не вызывается для 180 и 270 градусов

Проверьте, выбрана ли соответствующая цель или нет из active scheme selector. Выбор Generic iOS Device решил мою проблему.

Нажмите, чтобы выбрать симулятор

Выберите Generic iOS Device

6
задан Victor Apoyan 16 January 2019 в 14:35
поделиться

4 ответа

измените

<activity
android:name=".SecretActivity" 
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="adjustResize" />

на

<activity android:name=".SecretActivity" android:configChanges="screenSize|orientation|screenLayout|navigation"/>

и, пожалуйста, проверьте этот ответ второй ответ, который я имею в виду.

0
ответ дан pouya 16 January 2019 в 14:35
поделиться

Хм, проверьте манифест, добавьте / измените

android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
0
ответ дан notTdar 16 January 2019 в 14:35
поделиться

Если у вас есть активность с неопределенной ориентацией экрана, устройства обычно игнорируют поворот на 180 ° и поддерживают только одно альбомное направление.

Чтобы поддерживать все направления, добавьте явный атрибут screenOrientation к вашей записи манифеста активности: user или sensor, в зависимости от того, хотите ли вы поддерживать блокировку ориентации устройства пользователем или нет.

0
ответ дан laalto 16 January 2019 в 14:35
поделиться

OrientationEventlistener не будет работать, когда устройство не вращается / движется.

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

 DisplayManager.DisplayListener mDisplayListener = new DisplayManager.DisplayListener() {
    @Override
    public void onDisplayAdded(int displayId) {
       android.util.Log.i(TAG, "Display #" + displayId + " added.");
    }

    @Override
    public void onDisplayChanged(int displayId) {
       android.util.Log.i(TAG, "Display #" + displayId + " changed.");
    }

    @Override
    public void onDisplayRemoved(int displayId) {
       android.util.Log.i(TAG, "Display #" + displayId + " removed.");
    }
 };
 DisplayManager displayManager = (DisplayManager) mContext.getSystemService(Context.DISPLAY_SERVICE);
 displayManager.registerDisplayListener(mDisplayListener, UIThreadHandler);

onDisplayChanged срабатывает только в точности при изменении getRotation (). OrientationEventListener, с другой стороны, постоянно запускается в реальном времени и даже до изменения getRotation (), что приводит к совершенно неправильным значениям поворота экрана при повороте на 180 ° с перспективы.

0
ответ дан Vanshaj Daga 16 January 2019 в 14:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: