【问题标题】:Change the Statusbar text color to black when the Statusbar background is white当状态栏背景为白色时,将状态栏文本颜色更改为黑色
【发布时间】:2021-06-13 19:38:20
【问题描述】:

我尝试了这里给出的一些解决方案,但似乎没有一个对我有用。这就是我在 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。

【问题讨论】:

    标签: android android-statusbar


    【解决方案1】:

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

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

    请注意,这仅适用于 23+,因此您必须制作具有这些属性的 23+ 主题文件。我相当确定

    【讨论】:

    • 在将 minSdkVersion 更改为 23 后,这对我有用。谢谢。
    • @dspblack 您不必将其更改为 23,您可以在 values-v23 文件夹中创建第二个主题文件并在其中使用它。这样它就可以在 23 岁及以下。我相当确定您无法更改状态栏文本颜色
    猜你喜欢
    • 1970-01-01
    • 2021-06-18
    • 2015-03-05
    • 2015-09-26
    • 2017-08-16
    • 2019-11-20
    • 2016-10-16
    • 1970-01-01
    相关资源
    最近更新 更多