全屏时Android状态栏背景消失

时间:2015-02-17 22:11:33

标签: android statusbar

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

这是我用来全屏的代码:

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

这个问题似乎只发生在棒棒糖主题上。如果我从“材质”主题切换为“Holo”主题,则状态栏会正确设置动画。

其他人有这种经历吗?

1 个答案:

答案 0 :(得分: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