Patrząc na AndroidManifest.xml ( link ), w linii 9:
<activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
Ta linia określa screenOrientation
jako poziomą, ale autor idzie dalej w nadpisywaniu wszelkich zmian orientacji ekranu za pomocą configChanges="orientation|keyboardHidden"
. Wskazuje to na nadpisaną funkcję w VncCanvasActivity.java.
Jeśli spojrzysz na VncCanvasActivity, w linii 109 jest nadpisana funkcja:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// ignore orientation/keyboard change
super.onConfigurationChanged(newConfig);
}
Autor specjalnie umieścił komentarz, aby zignorować wszelkie zmiany klawiatury lub orientacji.
Jeśli chcesz to zmienić, możesz wrócić do pliku AndroidManifest.xml pokazanego powyżej i zmienić wiersz na:
<activity android:screenOrientation="sensor" android:name="VncCanvasActivity">
Powinno to zmienić program tak, aby przełączał się z trybu pionowego na poziomy, gdy użytkownik obraca urządzenie.
Może to działać, ale może zepsuć wygląd GUI, w zależności od tego, jak utworzono układ. Będziesz musiał to uwzględnić. Ponadto, w zależności od sposobu kodowania działań, można zauważyć, że po zmianie orientacji ekranu wartości, które zostały wprowadzone w dowolnych polach wejściowych, znikają. To również może wymagać załatwienia.
configChanges
atrybut jest potrzebny? Wygląda na to, że działa na moim telefonie bez klawiatury bez niego ... W jakich sytuacjach orientacja zmieni się na portret, jeśli masz,screenOrientation="landscape"
ale pominieszconfigChanges
?