我的应用程序上有三个活动。 MainActivity的布局是带有fitsSystemWindows="true"
的DrawerLayout。另外两个活动的根元素是具有相同属性的CoordinatorLayout。我为清单中的所有活动定义了android:launchMode="singleTop"
。
所有活动都使用相同的主题AppTheme
,该主题具有以下属性:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:navigationBarColor">@color/colorPrimaryDark</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowBackground">@color/background</item>
<item name="android:colorBackground">@color/background</item>
</style>
这适用于MainActivity,但不适用于状态栏为黑色的其他两个(而不是应该是透明的)。支持库的先前版本(v7:27.0.2)不是这种情况。任何人都知道这里可能有什么问题吗?提前谢谢!
答案 0 :(得分:3)
我有同样的问题,稍微扭曲:我的状态栏是完全白色而不是黑色。
当我第一次尝试升级到support-v27.0.2
时,我坚持使用support-v27.1.0
解决了这个问题。但是,support-v27.1.1
现已发布并且问题仍然存在,因此谷歌不太可能出现这种错误,因此需要进行适当的修复。
对我有用的解决方案正如Thomas Vos在OP下面的评论中所描述的那样。我认为值得在此提供更多详细信息,因为这似乎是最佳解决方案。
在“styles.xml(v21)”中,你可能会有一个名为“AppTheme.NoActionBar”的样式,它看起来像这样:
<style name="AppTheme.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>
如果您已经编辑了样式,显然可能还有其他项目,但无论您拥有什么,只需将以下内容添加到样式标记之间的列表底部。
状态栏应该恢复正常。
<item name="statusBarBackground">?attr/colorPrimaryDark</item>
答案 1 :(得分:1)
我通过降级到support-v27.0.2
来“解决”这个问题。不幸的是,这是谷歌改变某些东西并且没有在任何地方记录它的那些(不那么罕见)案例之一。