Guardando AndroidManifest.xml ( link ), sulla linea 9:
<activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
Questa riga specifica screenOrientation
come orizzontale, ma l'autore si spinge oltre a sostituire qualsiasi cambiamento di orientamento dello schermo con configChanges="orientation|keyboardHidden"
. Questo indica una funzione sovrascritta in VncCanvasActivity.java.
Se guardi VncCanvasActivity, alla riga 109 c'è la funzione override:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// ignore orientation/keyboard change
super.onConfigurationChanged(newConfig);
}
L'autore ha espressamente inserito un commento per ignorare qualsiasi cambiamento di tastiera o orientamento.
Se vuoi modificarlo, puoi tornare al file AndroidManifest.xml mostrato sopra e cambiare la riga in:
<activity android:screenOrientation="sensor" android:name="VncCanvasActivity">
Ciò dovrebbe cambiare il programma per passare da verticale a orizzontale quando l'utente ruota il dispositivo.
Questo potrebbe funzionare, ma potrebbe incasinare l'aspetto della GUI, a seconda di come è stato creato il layout. Dovrai renderlo conto. Inoltre, a seconda della modalità di codifica delle attività, è possibile notare che quando si modifica l'orientamento dello schermo, i valori inseriti in tutte le caselle di input scompaiono. Anche questo potrebbe dover essere gestito.
configChanges
necessario l' attributo? Sembra funzionare sul mio telefono senza tastiera senza di esso ... In quali situazioni l'orientamento cambierà in verticale se hai,screenOrientation="landscape"
ma ometti ilconfigChanges
?