В Android строка состояния и панель навигации по-прежнему видны, пока отображается заставка.Как от этого избавиться? - PullRequest
0 голосов
/ 01 февраля 2019

Это странная проблема с Apache Cordova.Я создал приложение для Android.Начиная с Android 4.4 есть режим погружения.Поэтому, когда я добавляю:

<preference name="Fullscreen" value="true" />

в config.xml и запускаю приложение, я вижу, как строка состояния выходит за пределы экрана наверх, и панель навигации выходит изэкран внизу - как и ожидалось.

Как только я использую плагин Cordova для заставки, используя:

cordova plugin add cordova-plugin-splashscreen

и добавляю заставку в config.xml следующим образом:

<splash src="res/screen/android/splashScreen.png" />
<plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />

все немного по-другому.

В течение времени, когда виден экран-заставка, экран выглядит следующим образом:

Screenshot showing splashscreen

Как видите,навигация и строка состояния все еще видны.Что ж, как только исчезает заставка, я вижу, как строка состояния / навигации выходит за пределы экрана - таким образом, похоже, что теперь он переключается в режим погружения.К сожалению, это портит макет приложения.Похоже, что настоящее приложение теперь находится между областью, где находились строка состояния и панель навигации.Поэтому вместо чего-то полноэкранного у меня есть черные границы сверху и снизу.Это выглядит примерно так:

Screenshot of the application

Очевидно, Android возвращает неправильные размеры экрана, потому что статус и панель навигации все еще были там.Как заставить Cordova переключиться в режим погружения, как только на экране появится заставка?

1 Ответ

0 голосов
/ 01 февраля 2019

Вопрос: использует ли кордова стили натива Android и манифест (уверен, что это так)?Если это так, вы можете:

Использовать полноэкранную тему / стиль в своей деятельности.

В вашем файле styles.xml:

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

, а затем использовать его в манифесте.

<activity android:name=".ActivityName"
    android:label="@string/app_name"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.Fullscreen"/>
...