Come posso disabilitare la modalità orizzontale per alcune visualizzazioni nella mia app Android?
Aggiungete android:screenOrientation="portrait"
all'attività nell'AndroidManifest.xml. Per esempio:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
EDIT: Dal momento che questa è diventata una risposta super-popolare, mi sento molto colpevole in quanto forzare il ritratto è raramente la soluzione giusta per i problemi a cui è spesso applicata; I principali avvertimenti con il ritratto forzato:
retainInstance
.Quindi la maggior parte delle app dovrebbe semplicemente lasciare che i sensori del telefono, il software e la configurazione fisica prendano la loro decisione su come l'utente vuole interagire con la tua app. Qualche caso a cui si potrebbe ancora voler pensare, però, se non si è soddisfatti del comportamento di default dell'orientamento del sensore
nel proprio caso d'uso:
nosensor
per l'orientamento. Questo forza il paesaggio sulla maggior parte dei tablet e il ritratto sulla maggior parte dei telefoni, ma ancora non lo raccomanderei per la maggior parte delle applicazioni "normali" (ad alcuni utenti piace semplicemente digitare nella softkeyboard orizzontale sui loro telefoni, e molti utenti di tablet leggono in verticale - e dovresti lasciarli fare).sensorPortrait
può essere meglio di portrait
per Android 2.3+; questo permette il ritratto capovolto, che è abbastanza comune nell'uso dei tablet.Non ero a conoscenza dello switch del file AndroidManifest.xml
fino a quando non ho letto questo post, quindi nelle mie applicazioni ho usato questo invece:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed Portrait orientation
Nella directory <apphome>/platform/android
create AndroidManifest.xml
(copiandolo da quello generato).
Poi aggiungete android:screenOrientation=
"portrait
" a TUTTI gli elementi di attività.