Hoe kan ik de liggende modus uitschakelen voor sommige weergaven in mijn Android app?
Voeg android:screenOrientation="portrait"
toe aan de activiteit in de AndroidManifest.xml. Bijvoorbeeld:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
EDIT: Sinds dit een superpopulair antwoord is geworden, voel ik me erg schuldig omdat forcing portrait zelden de juiste oplossing is voor de problemen waarop het's vaak wordt toegepast.
De belangrijkste kanttekeningen bij geforceerd portret:
retainInstance
fragmenten te gebruiken.Dus de meeste apps moeten gewoon de telefoon sensoren, software, en fysieke configuratie hun eigen beslissing laten maken over hoe de gebruiker wil communiceren met uw app. Een paar gevallen kunt u nog steeds wilt nadenken over, hoewel, als u're niet gelukkig met het standaard gedrag van sensor
oriëntatie in uw use case:
nosensor
te gebruiken voor de oriëntatie. Dit dwingt landschap op de meeste tablets en portret op de meeste telefoons, maar ik zou nog steeds'dit niet aanraden voor de meeste "normale" apps (sommige gebruikers vinden het gewoon leuk om te typen in het landschap softkeyboard op hun telefoons, en veel tablet gebruikers lezen in portret - en je moet ze laten).sensorPortrait
misschien beter dan portrait
voor Android 2.3+; dit staat omgekeerd portret toe, wat vrij gebruikelijk is in tabletgebruik.Ik was niet op de hoogte van de AndroidManifest.xml
bestandswissel totdat ik deze post las, dus in mijn apps heb ik dit in plaats daarvan gebruikt:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed Portrait orientation
Maak in de <apphome>/platform/android
directory AndroidManifest.xml
(kopieer het van het gegenereerde exemplaar).
Voeg vervolgens android:screenOrientation=
"portrait
" toe aan ALLE activity elementen.