Отключить ландшафтный режим в Android? - PullRequest
877 голосов
/ 24 февраля 2009

Как отключить ландшафтный режим для некоторых видов в моем приложении для Android?

Ответы [ 32 ]

0 голосов
/ 18 июля 2013

В надежде помочь кому-то еще, следующий атрибут ACTIVITY в AndroidManifest.xml - это все, что вам нужно:

андроид: configChanges = "ориентация"

Итак, узел полной активности:

<activity android:name="Activity1" 
    android:icon="@drawable/icon" 
    android:label="App Name" 
    android:configChanges="orientation">
0 голосов
/ 22 сентября 2016

, если ваша деятельность связана с первым состоянием ориентации устройства, получите текущую ориентацию устройства в методе onCreate и затем исправьте ее навсегда:

        int deviceRotation = ((WindowManager) getBaseContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

        if(deviceRotation == Surface.ROTATION_0) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
        else if(deviceRotation == Surface.ROTATION_180)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
        }
        else if(deviceRotation == Surface.ROTATION_90)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
        else if(deviceRotation == Surface.ROTATION_270)
        {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
        }
...