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

Android中如何修改状态栏默认文字颜色(Jetpack Compose)

在Jetpack Compose中修改状态栏文字颜色(白色改黑色)

下面提供两种实用方法,帮你把状态栏的时间、Wi-Fi等文字/图标从白色改为黑色:

方法一:使用Compose官方的SystemUiController(推荐)

借助LocalSystemUiController可以直接在Composable中控制状态栏样式,需要依赖androidx.compose.ui:ui库。

代码示例

import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalSystemUiController
import androidx.compose.ui.graphics.Color

@Composable
fun MainScreen() {
    val systemUiController = LocalSystemUiController.current
    
    // 设置状态栏背景色(可选,示例为白色,搭配黑色文字更清晰)
    systemUiController.setStatusBarColor(
        color = Color.White,
        darkIcons = true // 核心参数:开启深色图标/文字,即黑色
    )

    Surface(
        modifier = Modifier.fillMaxSize(),
        color = MaterialTheme.colorScheme.background
    ) {
        // 这里写你的页面内容
    }
}

说明

darkIcons = true仅在Android 6.0(API 23)及以上版本生效,低于该版本的设备受系统限制,无法修改状态栏文字颜色,只能保持白色。

方法二:通过Activity的Window直接配置

如果需要在Activity层级统一设置,或者处理更低版本的兼容逻辑,可以用这种方式:

代码示例

import android.os.Build
import androidx.activity.ComponentActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.platform.LocalContext

@Composable
fun SetupStatusBar() {
    val activity = LocalContext.current as ComponentActivity
    
    LaunchedEffect(Unit) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            // 开启状态栏深色图标/文字
            activity.window.decorView.systemUiVisibility = 
                activity.window.decorView.systemUiVisibility or android.view.View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
            // 可选:设置状态栏背景为白色
            activity.window.statusBarColor = android.graphics.Color.WHITE
        } else {
            // API 23以下无法修改文字颜色,建议设置深色状态栏背景,保留白色文字
            activity.window.statusBarColor = android.graphics.Color.BLACK
        }
    }
}

在你的主Composable中调用SetupStatusBar()即可生效。

额外提示

如果App支持深色模式,记得根据当前主题动态切换darkIcons的值:

  • 浅色主题:darkIcons = true(黑色文字)
  • 深色主题:darkIcons = false(白色文字)

内容的提问来源于stack exchange,提问作者Tippu Fisal Sheriff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:40:17