Android - Handle Orientation

Aus Wikizone
Wechseln zu: Navigation, Suche

Lock Orientation[Bearbeiten]

http://stackoverflow.com/questions/1512045/how-to-disable-orientation-change-in-android

Möglichkeit 1 Manifest:

android:screenOrientation="nosensor" android:configChanges="keyboardHidden|orientation"

ab 3.2 sollte man noch screenSize dazu nehmen.

<activity android:name="MainActivity" android:configChanges="keyboardHidden|orientation|screenSize">

Vorteil: Schnelle Lösung Nachteil: Wegen dem nosensor gibt es keine Möglichkeit das Verhalten im Code selbst zu bestimmen.

Möglichkeit 2

  • Set android:configChanges of your Activity (in manifest file) to keyboardHidden|orientation
  • Override onConfigurationChanged()

Im Manifest einstellen auf was android reagieren soll

android:configChanges="keyboardHidden|orientation"

Die Veränderung im Code selbst regeln (z.b. gar nichts machen ;-) )

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    //here you can handle orientation change
}

In der onCreate() Methode die Orientation setzen. In onConfiguration Changed kann es vorkommen, daß sich die Orientation ändert und zurücksetzt.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);