Скрыть строку состояния, если не работает на каком-то устройстве - PullRequest
0 голосов
/ 18 июня 2020

Скрыть строку состояния не работает в Pixel-2-api24 . Однако он отлично работает в Pixel-3a-XL-api29 . вот код

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN)
    }
}

Pixel-2-api24 Снимок экрана

enter image description here

Pixel -3a-XL-api29 Снимок экрана

enter image description here

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Пробовали ли вы использовать доступные по умолчанию флаги пользовательского интерфейса для полноэкранной активности?

// Note that some of these constants are new as of API 16 (Jelly Bean)
// and API 19 (KitKat). It is safe to use them, as they are inlined
// at compile-time and do nothing on earlier devices.
window.decorView.systemUiVisibility =
    View.SYSTEM_UI_FLAG_LOW_PROFILE or
            View.SYSTEM_UI_FLAG_FULLSCREEN or
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
            View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
            View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

И стиль по умолчанию для этого:

<style name="FullscreenTheme" parent="AppTheme">
    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle</item>
    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle</item>
</style>

<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/black_overlay</item>
</style>

Вы можете проверить это самостоятельно, создав новое действие FullScreen в вашем приложении или в примере проекта. Это также дает вам возможность отложить скрытие системных панелей и переключать их. Это также очень хорошо прокомментировано.

0 голосов
/ 18 июня 2020

Чтобы скрыть строку состояния, вам необходимо изменить тему приложения:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowDisablePreview">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <!--<item name="android:navigationBarColor">@color/colorAccent</item>-->
    </style>

Также добавьте строку ниже в свою активность oncreate:

 supportActionBar?.hide()

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...