在状态栏颜色下方添加阴影

Add a shadow below the color in status bar

您好,我在向状态栏添加颜色和阴影时遇到问题,因此它看起来有点暗。

我现在拥有的是:

我想做的是:

我的styles.xml是:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 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:windowActionBarOverlay">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:actionBarStyle">@style/FullscreenActionBarStyle</item>
    </style>

    <style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">
        <item name="android:background">@color/colorPrimaryDarkShadow</item>
    </style>
</resources>

和我的 colors.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#607d8b</color>
    <color name="colorPrimaryDark">#607d8b</color>
<resources>

但出于某种原因,我最终让工具栏和状态栏具有完全相同的颜色。我尝试按照另一个 post 中的建议添加 android:elevation="8dp",但结果仍然相同。谁能指导我完成它?

将您的主题 parent="Theme.AppCompat.Light.NoActionBar" 更改为 parent="Theme.AppCompat.Light"

<style name="AppTheme.Me" parent="Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

您有两个选择:

  1. colorPrimaryDark更改为您想要使用的颜色 状态栏。 AppCompat 主题自动设置状态栏 颜色为 colorPrimaryDark.

    由于您使用 Material Blue Grey 500 [#607D8B] 作为您的 colorPrimary、Google推荐使用700版本 colorPrimaryDark;即 #455A64.

  2. 使用以下命令将主题中的状态栏设置为半透明 windowTranslucentStatus。这将添加一个半透明的黑色 状态栏背景。

    <item name="android:windowTranslucentStatus">true</item>
    

    您还必须将 android:fitsSystemWindows 添加到您的布局中 为了利用这个。