如何根据主题更改状态栏文本颜色 android

How can i change status bar text color, depending on theme android

我有问题。在白天主题中,我有一个浅色的状态栏背景和深色文本,但是如果我将主题更改为夜间,状态栏背景变暗并且文本变暗,但我需要文本变亮。我该怎么做?

以下截图:

v23\themes代码:

<style name="Theme.Light" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">@color/purple_500</item>
    <item name="colorPrimaryVariant">@color/action_bar</item> // this color looks like background
    <item name="colorOnPrimary">@color/white</item>

    <item name="colorPrimaryDark">@color/black</item>
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_700</item>
    <item name="colorOnSecondary">@color/black</item>

    <item name="android:windowLightStatusBar">true</item>
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

夜-v23\themes代码:

<style name="Theme.Night" parent="Theme.AppCompat.DayNight.NoActionBar">
    <item name="colorPrimary">@color/purple_200</item>
    <item name="colorPrimaryVariant">@color/action_bar</item> // this color looks like background
    <item name="colorOnPrimary">@color/white</item>

    <item name="colorPrimaryDark">@color/white</item>
    <item name="colorSecondary">@color/teal_200</item>
    <item name="colorSecondaryVariant">@color/teal_200</item>
    <item name="colorOnSecondary">@color/white</item>

    <item name="android:windowLightStatusBar">false</item>
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
</style>

在您的 Android 项目中,您可以在 themes.xml 中更改这些值,应该有两个,一个用于白天主题,一个用于夜间主题。

在这些文件中,您可以更改 Android 将使用的所有默认颜色。

您可以在 'app' > 'res' > 'values' > 'themes.xml'[=18= 中找到 themes.xml ]

有关更多信息,还有这个使用完整答案; https://imstudio.medium.com/android-change-status-bar-text-color-659680fce49b