【问题标题】:How to change the background color i.e. "element color and text color" of notification bar in Android...?如何更改Android中通知栏的背景颜色,即“元素颜色和文本颜色”......?
【发布时间】:2025-12-20 06:50:11
【问题描述】:

我必须更改状态栏的元素颜色和文本颜色,我还必须更改 Android 中标题栏的文本颜色:

现有代码如下:

styles.xml

<style name="AppThemeNew" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="android:statusBarColor">@color/status_bar_color</item>
        <item name="android:windowLightStatusBar">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    </style>

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#FDFEFE</color>
    <color name="colorPrimaryDark">#F4F6F6</color>
    <color name="colorAccent">#088da5</color>
    <color name="status_bar_color">#F4F6F6</color>
    <color name="status_bar_element_color">#AAB7B8</color>
</resources>

row_data.xml

Layout

请帮忙.....

【问题讨论】:

    标签: java android android-notifications android-styles android-statusbar


    【解决方案1】:

    要更改状态栏的元素和文本颜色,您可以像这样创建自定义主题:

        <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="android:statusBarColor">@color/status_bar_color</item>
            <item name="android:windowLightStatusBar">false</item>
        </style>
    

    注意事项:

    1. status_bar_color 将是您的自定义颜色资源。

    2. android:windowLightStatusBar = true,状态栏文本颜色将为 状态栏颜色浅时兼容(灰色)。

      android:windowLightStatusBar = false,状态栏文字颜色会 当状态栏颜色较暗时兼容(白色)。

      ref is here

    3. 在 API 级别 23 以上测试

    【讨论】:

    • 即使在设置 android:windowLightStatusBar = true 之后,我也无法将状态栏元素设置为 gray ,我认为 &lt;item name="android:statusBarColor"&gt;@color/status_bar_color&lt;/item&gt; 根本不起作用,因为默认情况下,它采用 @color/colorPrimaryDark 作为其状态栏颜色。代码如下:&lt;item name="android:statusBarColor"&gt;@color/status_bar_color&lt;/item&gt; &lt;item name="android:windowLightStatusBar"&gt;true&lt;/item&gt;
    【解决方案2】:

    操作栏采用来自textColorPrimary的标题和图标颜色

    但是,如果您在应用主题上设置,这也会影响编辑文本和文本视图的默认文本。

    要解决此问题,请为包含文本颜色更改的应用栏创建一个单独的主题,并在应用主题中将其引用为应用栏样式,或者如果您有自定义工具栏,则将其设置在 XML 中的工具栏上。

    【讨论】:

    • 工具栏标题颜色根据您的建议更改,但我仍然无法更改通知栏的元素颜色。
    最近更新 更多