更改 Jetpack Compose Material3 中的状态栏文本颜色

问题描述 投票:0回答:1

我在使用 Jetpack Compose 构建的 Android 应用程序时遇到问题。尽管寻找解决方案,但我还没有找到问题的正确答案。

在我的应用程序中,在浅色模式下,文本和图标(例如时间、Wi-Fi、信号等)显示为白色,而在深色模式下,它们显示为黑色。

我的目标是自定义此行为,以便在浅色模式下,它们显示为 Color.DarkGray,而在深色模式下,它们显示为 Color.LightGray。

虽然我在其他问题中遇到了一些代码片段,但它们现在已被弃用。
此外,即使它们有效,它们似乎也只是修改了状态栏,而不是预期的文本和图标。”
如何更改Android状态栏默认文本颜色

fun MyTheme { 
            ...

            val systemUiController = rememberSystemUiController()
            val useDarkIcons = !isSystemInDarkTheme()

            SideEffect {
                systemUiController.setStatusBarColor(
                    color = Color(0xff655D8A),
                    darkIcons = !useDarkIcons
                )

            ... 
}

我正在使用 Android Studio Giraffe

这是我的 build.gradle 应用程序

...

android {
    namespace = "com.kumuda.jetweatherforecast"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.kumuda.jetweatherforecast"
        minSdk = 32
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary = true
        }
    }

    buildTypes {
        release {
            isMinifyEnabled = false
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
    kotlinOptions {
        jvmTarget = "17"
    }
    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.4.3"
    }
    packaging {
        resources {
            excludes += "/META-INF/{AL2.0,LGPL2.1}"
        }
    }
}

...

我想改变状态栏的颜色文本, 有人可以帮助我吗?

android kotlin android-jetpack-compose android-jetpack android-jetpack-compose-material3
1个回答
0
投票
val a = true/false
val b = !a
val c = !b
a == c always true

尝试

SideEffect {
                systemUiController.setStatusBarColor(
                    color = Color(0xff655D8A),
                    darkIcons = useDarkIcons
                )
© www.soinside.com 2019 - 2024. All rights reserved.