【问题标题】:Android status bar background disappears when going fullscreen全屏时Android状态栏背景消失
【发布时间】:2015-03-25 05:50:14
【问题描述】:

在我的 android 应用程序中,状态栏覆盖在应用程序内容的顶部。每当我进入全屏状态时,状态栏会立即从当前颜色变为半透明,然后状态栏图标会在屏幕上显示动画。我想防止状态栏变成半透明,而是保持相同的颜色并使用图标在屏幕外设置动画。

这是我用来全屏显示的代码:

int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
getWindow().getDecorView().setSystemUiVisibility(flags); 

这个问题似乎只发生在棒棒糖主题上。如果我从 Material 主题切换到 Holo 主题,状态栏的动画效果会正常。

还有其他人经历过这种情况吗?

【问题讨论】:

    标签: android statusbar


    【解决方案1】:

    当我通过设置 flag_translucent_status 进入全屏时,我能够拥有一个半透明的状态栏。文档说如果您在尝试设置状态栏颜色时有 FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS ,则不应设置它。不是一个完美的解决方案,设置此标志也会设置 SYSTEM_UI_FLAG_LAYOUT_STABLE 和 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN。

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    

    http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_TRANSLUCENT_STATUS

    【讨论】:

      猜你喜欢
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多