Schauen Sie sich die AndroidManifest.xml ( Link ) in Zeile 9 an:
<activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
Diese Zeile gibt die screenOrientation
Landschaft als Querformat an, aber der Autor überschreibt alle Änderungen der Bildschirmausrichtung mit configChanges="orientation|keyboardHidden"
. Dies weist auf eine überschriebene Funktion in VncCanvasActivity.java hin.
Wenn Sie sich VncCanvasActivity ansehen, steht in Zeile 109 die überschriebene Funktion:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// ignore orientation/keyboard change
super.onConfigurationChanged(newConfig);
}
Der Autor hat ausdrücklich einen Kommentar abgegeben, um Änderungen an Tastatur oder Ausrichtung zu ignorieren.
Wenn Sie dies ändern möchten, können Sie zur oben gezeigten Datei AndroidManifest.xml zurückkehren und die Zeile in Folgendes ändern:
<activity android:screenOrientation="sensor" android:name="VncCanvasActivity">
Dies sollte das Programm so ändern, dass beim Drehen des Geräts vom Hoch- zum Querformat gewechselt wird.
Dies funktioniert möglicherweise, kann jedoch das Aussehen der Benutzeroberfläche beeinträchtigen, je nachdem, wie das Layout erstellt wurde. Sie müssen das berücksichtigen. Abhängig davon, wie die Aktivitäten codiert sind, stellen Sie möglicherweise fest, dass beim Ändern der Bildschirmausrichtung die Werte, die in Eingabefelder eingegeben wurden, verschwinden. Dies muss möglicherweise auch behandelt werden.
configChanges
Attribut benötigt? Es scheint auf meinem Nicht-Tastatur-Telefon ohne es zu funktionieren ... In welchen Situationen ändert sich die Ausrichtung in Hochformat, wenn Sie dasscreenOrientation="landscape"
aber weglassenconfigChanges
?