Android中的状态栏覆盖操作栏

Posted

技术标签:

【中文标题】Android中的状态栏覆盖操作栏【英文标题】:Status bar cover action bar in Android 【发布时间】:2016-12-21 12:56:39 【问题描述】:

我希望我的状态栏是透明的并与操作栏颜色相匹配。但是对于不同的活动,我的操作栏有不同的颜色,所以我的状态栏不能使用“colorPrimaryDark”。如何做到这一点?

v21\styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimaryDark">@android:color/transparent</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>
<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>

Activity 有“android:fitsSystemWindows="false"

这就是我所拥有的 这就是我想要的

操作栏中的其他颜色相同。

有什么帮助吗?

【问题讨论】:

Activities has "android:fitsSystemWindows="false"" 为什么? 如果 "android:fitsSystemWindows="true"" 则状态栏是透明的,后面是白色的 【参考方案1】:

这是正常行为 - 此命令适用于当您想要一张无法在状态栏后面拉伸的图片(如 here)的用例。解决方案-

1.我认为从图片中只需更改状态栏颜色即可:

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

2。将操作栏的高度增加 25dp(状态栏高度)。

【讨论】:

1.更改每个活动的状态栏颜色? 2. 布局文件的高度不能增加,因为不同的屏幕尺寸状态栏高度不同 1.将适用于所有活动,因为对于所有活动,如果您在应用程序中使用一个主题,如果不是,您可以从应用程序继承您的外观,其中包含“android:statusBarColor”。 2. 也适用于所有手机设备,因为它是 dp(根据设备更改大小)。 @Ossir

以上是关于Android中的状态栏覆盖操作栏的主要内容,如果未能解决你的问题,请参考以下文章

android沉浸式状态栏变色状态栏透明状态栏修改状态栏颜色及透明

android里悬浮窗如何覆盖状态栏

安卓 /android 手机 隐藏 状态栏 怎么操作啊

如何设置drawer layout覆盖状态栏之上 android

利用 Android 4.4 KitKat 中的半透明状态栏

利用 Android 4.4 KitKat 中的半透明状态栏