如何显示 Android 的全屏活动 (Android 13)

How to display full screen activity for android (android 13)

提问人:Jamie 提问时间:6/7/2023 更新时间:6/7/2023 访问量:631

问:

我知道有很多答案,不幸的是,我已经尝试了很多答案,但没有一个对我有用。我已经浏览并实施了这个和这个以及更多。

我的设备是谷歌 Pixel 6,我正在构建的应用程序没有在其上全屏显示,状态栏仍然显示,并且如屏幕截图所示,它仍然处于黑暗状态。但是,设备上的所有其他应用程序都以全屏显示。在设备上调试之前,我一直在使用 Pixel 6 的模拟器,它在模拟器上以全屏模式显示

请帮忙指出我缺少什么

这是我的主题文件 日间主题

<!-- Base application theme. -->
<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/primary</item>
    <item name="colorOnPrimary">@color/white</item>

    <item name="android:windowBackground">@color/white</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

“夜景”主题

<!-- Base application theme. -->
<style name="Theme.AppCompat.Light.NoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <!-- Primary brand color. -->
    <item name="colorPrimary">@color/primary</item>
    <item name="colorOnPrimary">@color/white</item>

    <item name="android:windowBackground">@color/white</item>
    <item name="android:colorBackground">@color/white</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

AndroidManifest 文件

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_logo"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_logo_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar">
    <activity
        android:name=".Activities.AuthenticateActivity"
        android:noHistory="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
    <activity
        android:name=".Activities.IntroActivity"
        android:noHistory="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
    <activity
        android:name=".Activities.SplashActivity"
        android:exported="true"
        android:noHistory="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

在清单文件中活动的 onCreate 方法上,我在设置页面内容后立即实现了这一点

getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

这些是图像This is how I expect the status bar This is what I am getting

Android android-appcompat 全屏 android-13

评论


答:

0赞 Jamie 6/7/2023 #1

经过数小时的重试其他几个答案,这奏效了

<style name="Theme.MaterialComponents.Light.NoActionBar" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowActivityTransitions">true</item>
</style>

未向活动或 xml 文件添加其他代码行。