当状态栏背景为白色时,将状态栏文本颜色更改为黑色

时间:2021-06-13 19:38:20

标签: android android-statusbar

我尝试了这里给出的一些解决方案,但似乎没有一个对我有用。这就是我的colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#fcfdfb</color>
    <color name="colorPrimaryDark">#fff</color>
    <color name="colorPrimaryLight">#333</color>
    <color name="colorPrimaryText">#333</color>
    <color name="colorAccent">#000000</color>
    <color name="white">#ffffff</color>
    <color name="black">#000000</color>
</resources>

这就是我在styles.xml中的内容

<resources xmlns:tools="http://schemas.android.com/tools">
    <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@drawable/background_splash</item>
    <item name="android:windowActionBar">false</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@drawable/background_splash</item>
    <item name="android:windowActionBar">false</item>
</style>
<style name="ProDialogue" parent="@android:style/Theme.Dialog">
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@color/colorPrimary</item>
    <item name="android:textColor">@color/black</item>
</style>
<style name="TransparentToolbar" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:windowActionBarOverlay">true</item>
    <item name="windowActionBarOverlay">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

我只需要状态栏文本/图标为黑色,因为我的背景为白色以匹配内容。作为初学者,我确信我在某个地方搞砸了,但希望有人能指导我。顺便说一句,我的 minSdkVersion 是 21。

1 个答案:

答案 0 :(得分:1)

将这些属性添加到您的主题

<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor">@color/white</item>

请注意,这仅适用于 23+,因此您必须使用这些属性制作 23+ 的主题文件。我相当确定 <23 每个设备的状态栏都是黑白的,你不能改变它,但你应该仔细检查