android - 闪屏上的沉浸式模式

标签 android splash-screen statusbar

我正在尝试实现一个占据整个屏幕的闪屏。因此,状态栏需要隐藏,但只能在启动画面期间隐藏。 现在启动画面出现了,但状态栏也仍然显示。 我尝试了这种方法但没有成功:

public class LaunchScreen extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        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 // hide nav bar
                        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                        | View.SYSTEM_UI_FLAG_IMMERSIVE);

        startActivity(new Intent(LaunchScreen.this, MainActivity.class));
        finish();
    }
}

这是我的初始资源文件:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowBackground">@drawable/launch_screen</item>
</style>

launch_screen.xml:

<item android:drawable="@color/colorPrimary" />
<item>
    <bitmap
        android:gravity="center"
        android:src="@mipmap/ic_launcher" />
</item>

list 文件:

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".LaunchScreen"
        android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity android:name=".MainActivity" />

非常感谢任何帮助!

最佳答案

万一有人觉得有用,我在我的样式文件中添加了以下几行:

 <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/launch_screen</item>
    <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>

然后从 LauncherScreen 类中删除了这些行:

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 // hide nav bar
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);

现在它就像一个魅力!

关于android - 闪屏上的沉浸式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45968840/

相关文章:

android - 启动画面在 PhoneGap Build 中不起作用

iphone - 如何在 Spotify iOS 应用程序中模仿可调整大小的 StatusBar

android - 创建 AlertDialog API 19 后出现 IllegalStateException

ios - 适用于新款 iPhone 7 (plus) 的 Phonegap/cordova 启动画面

Android:你能通过电话发送/接收数据吗?

ios - 如何在启动 Storyboard 中使用 Assets 目录中的启动图像?

wpf - 如何在 WPF 窗口状态栏上创建拖动拇指?

xcode - 如何在一个 ViewController 中两次或多次刷新 preferredStatusBarStyle

java - 如何重新连接okhttp-ws

java - LibGDX 位图字体性能