工具栏覆盖并在状态栏上投射阴影

Toolbar overlays and casts a shadow on status bar

我正在使用 AppCompat 在 Lollipop 之前的设备上向后移植 Material 设计。不知何故,支持 toolbar 覆盖了 status bar 并在其上投下阴影,就好像状态栏在工具栏后面一样。在我的 Android 5.0.2 phone.

上测试

代码如下:

Activity布局

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/base_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/base_appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/PGTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/base_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/PGTheme.PopupOverlay"/>

    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>

Theme-v21

<style name="PGTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/base_color_2</item>
    <item name="colorPrimaryDark">@color/base_color_1</item>
    <item name="colorAccent">@color/base_color_2</item>
    <item name="android:colorButtonNormal">@color/base_color_2</item>
    <item name="android:textViewStyle">@style/PGTheme.TextView</item>
    <item name="android:editTextStyle">@style/PGTheme.EditText</item>
    <item name="android:buttonStyle">@style/PGTheme.Button</item>
</style>

<style name="PGTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>

知道为什么会这样吗?

在您的样式中删除 statusBarColor:

<item name="android:statusBarColor">@android:color/transparent</item>

所以你的主题是:

<style name="PGTheme.NoActionBar">
  <item name="windowActionBar">false</item>
  <item name="windowNoTitle">true</item>
  <item name="android:windowDrawsSystemBarBackgrounds">true</item>
</style>

希望对您有所帮助。