android - 状态栏透明度不起作用

标签 android android-5.0-lollipop android-statusbar

我正在尝试使用以下代码使我的应用程序中的状态栏透明:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().setStatusBarColor(Color.TRANSPARENT);

但它不起作用。状态栏只是换了一种颜色,变成了灰色,不透明。我的错误在哪里?如何让状态栏透明?

最佳答案

在你的 styles.xml(v21) 中试试这个

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

更新

您可以通过设置此 Window 标志以编程方式在 KitKat 上和之后实现相同的效果

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window w = getWindow(); // in Activity's onCreate() for instance
            w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
        }

如果您为布局设置背景资源(如颜色或图片),您将在状态栏“下方”看到颜色或图片。

<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/primary_dark</item>

Source

关于android - 状态栏透明度不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33344153/

相关文章:

Android以编程方式设置正常状态栏

Android 全屏应用程序 - 阻止访问状态栏

android - 以编程方式设置 windowlightstatusbar 属性

android - 我想在 android 中的谷歌地图的街景 View 中添加 popover/overlay/hotspot

android - 状态栏后面的布局 - Android Lollipop

android - 为什么我的 Button 文本在 Lollipop 上强制全部大写?

Android Lollipop 从通知中接收媒体按钮操作?

android - 对android示例代码感到困惑

android - changeCursor 导致 CalledFromWrongThreadException 异常......但只有一次

java - 如何使用监听器捕获所有运动事件