You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native:如何禁用Android默认启动页(Splash Screen)

解决Android默认启动页先显示的问题

步骤1:修改Android主题配置

打开React Native项目下的android/app/src/main/res/values/styles.xml文件,调整App主题的相关属性,替换或覆盖系统默认的启动背景:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- 替换为你的自定义启动页drawable资源,保证和react-native-splash-screen的启动页视觉一致 -->
    <item name="android:windowBackground">@drawable/your_custom_splash</item>
    <!-- 禁用系统默认的启动预览窗口,避免先显示默认页 -->
    <item name="android:windowDisablePreview">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

注意:your_custom_splash是你提前放入android/app/src/main/res/drawable(或对应分辨率目录如hdpi、xhdpi)的启动页图片资源。

步骤2:配置Android端启动页初始化

在MainActivity.java或MainActivity.kt中,调整启动逻辑,先处理系统窗口再初始化自定义启动页:

Java版本

import android.os.Bundle;
import org.devio.rn.splashscreen.SplashScreen;

public class MainActivity extends ReactActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // 设置全屏(按需启用)
        getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN, android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // 初始化自定义启动页,第二个参数为true时隐藏状态栏,可按需调整
        SplashScreen.show(this, true);
        super.onCreate(savedInstanceState);
    }
}

Kotlin版本

import android.os.Bundle
import org.devio.rn.splashscreen.SplashScreen

class MainActivity : ReactActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        window.setFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN, android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN)
        SplashScreen.show(this, true)
        super.onCreate(savedInstanceState)
    }
}

步骤3:React Native端隐藏启动页

在App根组件中,确保React Native引擎加载完成后隐藏自定义启动页:

import SplashScreen from 'react-native-splash-screen';
import { useEffect } from 'react';

function App() {
  useEffect(() => {
    // 组件挂载后隐藏启动页,保证App内容加载完成后过渡
    SplashScreen.hide();
  }, []);

  return (
    // 你的App内容组件
  );
}

export default App;

额外注意事项

  • 不要直接删除android:windowBackground,否则启动时会出现短暂黑屏/白屏,保持和自定义启动页视觉一致才能实现无缝过渡。
  • 修改配置后执行./gradlew clean清理Android缓存,避免旧配置残留。
  • 如果启动页需要适配不同屏幕尺寸,建议使用.9.png格式的图片资源。

内容的提问来源于stack exchange,提问作者Hamza Ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:19:58