2017-09-21 2 views
0

Ich möchte die Aktivitätskonfiguration abhängig von der Gerätedrehung festlegen.onConfigurationChanged wird nicht ausgelöst

Ich behandle die Rotation unter Methode:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
..... 
} 

Es funktioniert drehen von Hoch- auf Querformat. Callback löst aus und die Ausrichtung der App wird geändert.

Aber es wird nicht ausgelöst, um das Gerät zu drehen, wenn es Landschaft ist. Aber die Ausrichtung der App wurde geändert.

Ich habe die folgenden Zeilen in Manifest hinzugefügt.

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

android: configChanges = "Orientierung | Bildschirmgröße"

Wie kann ich damit umgehen?

Antwort

0
android:configChanges="orientation|keyboardHidden|screenSize" rather than android:configChanges="orientation" 

Stellen Sie sicher, dass Sie nicht überall

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

fordern. Dies führt dazu, dass onConfigurationChange() nicht ausgelöst wird.

Überprüfen Sie auch, dass Sie nicht android:screenOrientation in Ihrem manifest verwenden.

oder in Java-Code setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

die Ausrichtung des Activity zu Portrait-Modus zu zwingen, sind Sie nicht Kandidatenorientierungsänderungen zu erhalten.

Also die Lösung ist nicht zu einem bestimmten Modus setRequestOrientation. Verwenden Sie stattdessen SCREEN_ORIENTATION_SENSOR.

Bezug: Android onConfigurationChanged not being called

Verwandte Themen