【问题标题】:Colors of the status bar using the DayNight theme in android在android中使用DayNight主题的状态栏颜色
【发布时间】:2020-03-23 17:44:22
【问题描述】:

我正在将主题 Theme.AppCompat.DayNight.NoActionBar 应用到我的应用程序中。

在浅色主题中,我希望状态栏为白色,在深色主题中,我希望它为深色。

我不能让状态栏变白,字母变暗,反之亦然。

这是我的风格:

 <style name="AppTheme.Base" parent="Theme.AppCompat.DayNight.NoActionBar">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorControlNormal">@color/primary_dark</item>
        <item name="colorControlHighlight">@color/primary_dark</item>
        <item name="android:textColorPrimary">@color/letter_medium_emphasis</item>
        <item name="android:textColorSecondary">@color/letter_high_emphasis</item>
    </style>

这是我的颜色文件:

<resources>
    <color name="primary">#ffffff</color>
    <color name="primary_dark">#0336ff</color>
    <color name="letter_high_emphasis">#de000000</color>
    <color name="letter_medium_emphasis">#99000000</color>
    <color name="letter_medium_disabled">#61000000</color>
</resources>

我已经尝试添加参数 &lt;item name="android:statusBarColor"&gt;@color/primary&lt;/item&gt;
但是我还是一样,状态栏是白色的,状态栏文字也是白色的。

在浅色主题中用深色字母显示白色状态栏的方式是什么,在深色主题中反之亦然?

【问题讨论】:

    标签: android android-dark-theme theme-daynight


    【解决方案1】:

    你可以使用isLightTheme attr:

    https://developer.android.com/reference/android/R.attr#isLightTheme

    像这样将它添加到您的主题.xml:

    <item name="android:windowLightStatusBar">?attr/isLightTheme</item>
    

    ?attr/isLightTheme 返回的值由系统处理。您还可以通过以下方式获取当前设置的值:

    AppCompatDelegate.getDefaultNightMode();
    

    或

    Configuration config = getResources().getConfiguration();
    int nightMode = configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK;
    

    与android:statusBarColor 一起,您可以自动控制浅色和深色主题的状态栏。

    此外,在使用此 attr 值时,我使用 parent="Theme.MaterialComponents.DayNight" 作为我的基本主题的运气要好得多。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 2015-11-20
      • 2018-05-05
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多