Galaxy S10, полноэкранный режим S10+

Как добиться полноэкранного режима с Samsung Galaxy S10 и S10+, у меня не работает следующий код:

getWindow().getDecorView().setSystemUiVisibility(
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
// | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);

Он скрывает содержимое строки состояния, но не скрывает саму строку состояния :(

Пожалуйста помоги

3
0
5 357
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте создать стиль:

<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 = ".MyActivity"
   android:theme = "@style/Theme.AppCompat.Light.NoActionBar.FullScreen" 
/>

ОБНОВИТЬ:

Насколько я знаю, Samsung S10 имеет соотношение сторон 19:9 (эквивалентно 2,1). Итак, в своем манифесте добавьте этот тег на свой <application>

<meta-data android:name = "android.max_aspect" android:value = "2.1" />

Вы также можете попробовать установить resizeableActivity для Activity или Application:

android:resizeableActivity = "true"

Что ж, попробуйте использовать тот же код на эмуляторе, если он работает, есть что-то конкретное для Galaxy s10, так как это устройство будет выпущено только 4 июня, я мало что могу сделать. Если вы работаете на Samsung, порекомендуйте провести внутреннее исследование.

Bruno Martins 13.03.2019 11:20

На самом деле S10, S10+ уже выпущены, и я получил один. Как следует из названия вопроса, проблема возникает только на S10, S10+.

Mohamad Bdour 13.03.2019 12:00

Я отредактировал свой ответ. Вы можете попробовать другой подход.

Bruno Martins 13.03.2019 12:19

Соотношение сторон 19:9 равно 2,111111111, возможно, вместо этого значение должно быть android:value = "2.2". Просто предположение

Bruno Martins 13.03.2019 14:58

тоже не сработало, я думаю, что это поведение предназначено для Samsung.

Mohamad Bdour 13.03.2019 15:22

Вы можете проверить другие приложения, такие как Youtube или какую-нибудь игру, чтобы сравнить поведение.

Bruno Martins 13.03.2019 17:01

Элементы стиля работали у меня на S10e в приложении React Native. Спасибо!

Ahmet Ardal 29.10.2019 19:45
Ответ принят как подходящий

Поместите в стиль вашего приложения следующее исправление этой проблемы для меня:

<item name = "android:windowLayoutInDisplayCutoutMode">shortEdges</item>

Подробнее о поддержке выреза см. здесь:

https://developer.android.com/guide/topics/display-cutout

Обратите внимание, что эта опция доступна только для уровня API 27+, поэтому вам понадобится отдельный файл themes.xml (для уровня API 27+ вам потребуется файл res/values-v27/themes.xml). Android Studio должна предложить вам выполнить этот рефакторинг автоматически и создать файлы для вас, как только вы добавите неподдерживаемое свойство в xml.

brkeyal 28.04.2020 11:41

Из документов, на которые ссылается Мохамад Бдур:

Note that Android might not allow the content view to overlap the system bars. To override this behavior and force content to extend into the cutout area, apply any of the following flags to the view visibility via the View.setSystemUiVisibility(int) method:

SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION SYSTEM_UI_FLAG_LAYOUT_STABLE

Другие вопросы по теме