2015-03-16 15 views
5

Ich kann nicht herausfinden, warum die Einstellung "SensorPortrait" -Attribut im Manifest für eine Aktivität nicht funktioniert, damit die Aktivität in umgekehrtes Portrait gehen kann. Dies ist, wie ich gesetzt in manifestWie können Sie in Telefonen nur Hoch- und Querformat aktivieren, funktioniert "sensorPortrait" nicht auf Telefonen?

<activity 
     android:name=".MainActivty" 
     android:label="Testing" 
     android:screenOrientation="sensorPortrait" 
     android:windowSoftInputMode="stateHidden" 
     android:configChanges="orientation"> 
    </activity> 

Der obige Code ist für mich nicht funktioniert sowohl reversePortrait und Porträt auf Moto E (4.4.4) oder Galaxy S3 (4,3) zu bekommen, aber ich kann bestätigen, es funktioniert auf ein Nexus 7 (5.0.1) -Tablet, habe ich mehrere andere Antworten ausprobiert, aber dieses scheint das einfachste zu sein, und es funktioniert anscheinend nicht für mich auf "Telefonen", verpasse ich einige Informationen, die relevant sind, um dies zum Funktionieren zu bringen?

Ich habe versucht, den folgenden Link, die als meine Frage nur so ähnlich ist, aber nichts scheint hilfreich, diese Zeit mit der Flagge „sensorPortrait“ verhält es sich genauso wie Einstellung „Portrait“, in Handys

Activity in portrait or reverse portrait only

in Bezug auf .

+0

Ich habe das gleiche Problem auf Xperia Z2 und SDK Version 21 in Manifest. Ich bekomme nie ein reversePortrait, auch wenn ich alle Orientierungen aktiviere. Was ist Ihre targetSdkVersion und minSdkVersion? – Radon8472

+0

Eigentlich wie in meinem Kommentar vor Ianhanniballake, können wir Reverse-Portrait haben, wenn wir den Modus auf "FullSensor", ich habe es gerade getestet in meinem Xperia Z2, läuft Lollipop 5.1.1, wo ich meine min sdk als 15 und Ziel sdk as 23. Sie haben nur das Problem, dass sie sich bei voller Sensor in alle Richtungen drehen wird. –

+0

Hmm, Dokumentationen sagt '** SensorPortrait **: Hochformat, kann aber entweder normal oder umgekehrt Porträt basierend auf dem Gerät Sensor' Aber auf '** fullSensor ** ist ein Hinweis 'einige Geräte werden normalerweise nicht verwenden umgekehrtes Porträt oder umgekehrte Landschaft, aber dies ermöglicht diese ". Also die Frage ist, wie Sie nur das Portrait und ReversePortrait auf Geräten aktivieren, was normalerweise nicht Reverve Views verwenden. – Radon8472

Antwort

1

Wenn Sie sich die PhoneWindowManager source code ansehen, können Sie sehen, dass es nach dem internen Wert config_allowAllRotations überprüft und verwendet, um festzustellen, ob die 180-Grad-Drehung (d. H. Umgekehrt Porträt auf Telefonen) zulässig ist.

Mit einem default value to false bedeutet dies, dass das umgekehrte Hochformat auf Telefonen deaktiviert ist. Sie werden feststellen, dass die sw600dp value (d. H. Tabletten) wahr ist, weshalb Sie alle Rotationen einschließlich des umgekehrten Portraits auf Tablet-Geräten verwenden können.

+2

Was Sie sagen, macht Sinn, aber dann wieder, wenn ich android: screenOrientation = "fullSensor" umgekehrtes Porträt wird auch in Handys passieren. Tatsächlich passieren alle 4 Rotationen ohne Probleme für diesen speziellen Orientierungsmodus. Was denkst du passiert dort, ignoriert es, was auch immer der interne Wert hat? –

Verwandte Themen