Android:状态栏不是转换为新活动的主题

And*_*ndy 10 android statusbar android-activity android-5.0-lollipop

我创建了一个包含2个活动的简单应用程序.主(启动器)活动以适当的方式主题colorPrimaryDark应用于状态栏.但是当我转换到新活动时,除状态栏外,一切似乎都正常.它以某种方式着色为白色.知道为什么会发生这种情况吗?

在OnePlus One(Lollipop 5.0.2)上运行

目标api - > 16+

在此输入图像描述

价值观/ styles.xml

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/PrimaryColor</item>
    <item name="colorPrimaryDark">@color/PrimaryDarkColor</item>
    <item name="colorAccent">@color/accent</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)

值-V21/styles.xml

<style name="AppTheme" parent="AppTheme.Base">
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/slide_bottom</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)

布局/ activity_settings.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#856"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    tools:context=".SettingsActivity">

    <include layout="@layout/toolbar" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

小智 8

更改

<item name="android:statusBarColor">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)

<item name="android:statusBarColor">@color/PrimaryDarkColor</item>
Run Code Online (Sandbox Code Playgroud)

  • 如果我更改或删除上述样式,则主活动中的导航抽屉会丢失一个功能,该功能会在状态栏下绘制导航抽屉.就像在这个[图片](http://3.bp.blogspot.com/-WmBBQQEJIKM/VWikAyy08sI/AAAAAAAABvc/1R36Txk83UI/s400/drawer.png)所以我按原样保留了样式并设置了以编程方式更改状态栏颜色有关的活动:getWindow().setStatusBarColor(getResources().getColor(R.color.PrimaryDarkColor)); (2认同)