Return to portrait mode

I fix the screen orientation with the cordova-plugin-screen-orientation.
preference name=“Orientation” value=“portrait”
Click the button on the main page go to a special page for landscape mode and lock orientation
window.screen.orientation.lock(‘landscape-primary’)

Then I return to the main page in portrait mode and lock this srceen mode
window.screen.orientation.lock(‘portrait-primary’)

The home page looks different than before going into landscape mode
Checked the situation on Framework7 version 2.0.6 and 2.2.1 – the result is the same.
Calling the status bar management functions (hide/show) in Android returns the original look of the main page.

How to make it so that when returning from landscape in portrait, CSS remains the same?
Can it is necessary to cause any function Framework7?


Я фиксирую ориентацию экрана с помощью плагина cordova-plugin-screen-orientation.
Кликом на кнопке главной страницы перехожу на специальную страницу для landscape режима и блокирую его
window.screen.orientation.lock(‘landscape-primary’)

Затем возвращаюсь на главную страницу в portrait режим и снова блокирую ориентацию экрана
window.screen.orientation.lock(‘portrait-primary’)

Главная страница выглядит иначе чем до перехода в landscape режим.
Проверял ситуацию на версии Framework7 2.0.6 и 2.2.1 - результат один и тот же.

Вызов функций управления статус баром (hide/show) в Андроид возвращает первоначальный вид главной страницы.

Как сделать так чтобы при возврате из landscape в portrait CSS остался тем же?
Может нужно вызвать какую-то функцию Framework7?

Не очень понятно что происходит:

Как именно иначе?

На странице происходит сдвиг элементов вправо, вверх, меняются размеры шрифтов.
На картинке слева страница до перехода в landscape, справа после возвращения из него.

Эффект изменения расположения элементов наблюдается на Андроид 4.4 (на реальном устройстве с HD-экраном и на симуляторе). На симуляторе версий 5+ эффекта нет.

Этот Андройд не очень поддерживается фреймворком. Рекомендую установить crosswalk web view для 4.4.

Вообще F7 единственное за чем следит при смене ориентации это статусбар, и отключает/включает (или пытается) его при необходимости. Видимо баг больше на стороне Cordova, попробйте вызывать просто statusbar.show() или ``statusbar.hide()` при смене ориентации

F7 вполне нормально работает на андроид 4.4
Я решил эту сложность передергиванием состояния статусбара между сменой страниц.
Например, для скрытого статусбара так:
if(appStatusBar == ‘Hide’) {
StatusBar.show();
setTimeout(function() {
StatusBar.hide();
}, 250);
}
Без таймаута нет эффекта.

1 Like