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

Android 12+深色模式下启动屏背景色被忽略问题求助

问题排查与解决步骤

1. 补全启动屏样式的父主题继承

你的AppTheme.Splash未指定父主题,Android 12+启动屏样式必须继承官方标准父主题才能生效。修改res/values-v31/styles.xml:

<resources>
    <!-- Splash Screen Theme (Android 12+) -->
    <style name="AppTheme.Splash" parent="Theme.SplashScreen">
        <item name="android:windowSplashScreenAnimatedIcon">@drawable/ic_foreground</item>
        <item name="android:windowSplashScreenBackground">@color/primary</item>
        <!-- 针对MIUI定制ROM:强制图标背景色与启动屏背景一致,避免系统自动替换 -->
        <item name="android:windowSplashScreenIconBackgroundColor">@color/primary</item>
    </style>
</resources>

2. 确认深色模式下的颜色资源配置

检查res/values-night/colors.xml中是否正确定义了primary颜色,如果该颜色在深色模式下与系统背景重叠或为透明,会导致背景色看起来被忽略:

<!-- res/values-night/colors.xml -->
<resources>
    <color name="primary">#适配深色模式的背景色值</color>
</resources>

同时保证res/values-night-v31/styles.xml的配置与values-v31完全一致,确保深色模式下样式正确匹配。

3. 适配MIUI定制ROM的特殊行为

Poco X4 Pro 5G搭载的MIUI会对第三方应用启动屏做定制修改,可尝试以下操作:

  • 进入手机「设置」→「应用设置」→ 找到你的应用 →「自定义通知」→ 关闭「使用系统样式」类选项
  • 关闭手机深色模式中的「增强深色模式」「强制应用深色模式」等全局开关后重试

4. 验证启动Activity的主题绑定

确保AndroidManifest.xml中启动Activity的android:theme指向正确的启动屏样式:

<activity
    android:name=".SplashActivity"
    android:theme="@style/AppTheme.Splash"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

5. 规范启动屏过渡逻辑

Android 12+要求在启动Activity的onCreate中先调用installSplashScreen(),再执行其他初始化逻辑:

class SplashActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        // 必须在super.onCreate之前调用
        val splashScreen = installSplashScreen()
        super.onCreate(savedInstanceState)
        // 后续页面跳转等逻辑
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:51:13