Переглядаючи AndroidManifest.xml ( посилання ), рядок 9:
<activity android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" android:name="VncCanvasActivity">
Цей рядок визначає screenOrientation
як пейзаж, але автор продовжує переосмислювати будь-які зміни орієнтації екрана configChanges="orientation|keyboardHidden"
. Це вказує на перекриту функцію в VncCanvasActivity.java.
Якщо ви подивитеся на VncCanvasActivity, рядок 109 - це переосмислена функція:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// ignore orientation/keyboard change
super.onConfigurationChanged(newConfig);
}
Автор спеціально виклав коментар, щоб ігнорувати будь-які зміни клавіатури чи орієнтації.
Якщо ви хочете змінити це, ви можете повернутися до показаного вище файла AndroidManifest.xml та змінити рядок на:
<activity android:screenOrientation="sensor" android:name="VncCanvasActivity">
Це повинно змінити програму для переходу з портретного на пейзаж, коли користувач повертає пристрій.
Це може спрацювати, але може зіпсувати те, як виглядає графічний інтерфейс, залежно від того, як створено макет. Вам доведеться це врахувати. Також, залежно від того, як кодуються дії, ви можете помітити, що при зміні орієнтації екрана значення, які були заповнені у будь-які поля введення, зникають. Це також може бути вирішено.
configChanges
потрібен атрибут? Схоже, він працює на моєму телефоні без клавіатури без нього ... У яких ситуаціях орієнтація зміниться на портретну, якщо у вас є,screenOrientation="landscape"
але пропустітьconfigChanges
?