2015-02-17 130 views
2

在我的Android应用程序中,状态栏覆盖在应用程序内容的顶部。每当我进入全屏状态时,状态栏会立即从当前颜色变为半透明状态,然后状态栏图标在屏幕上显示动画。我想阻止状态栏变成半透明状态,而只是保持与图标相同的颜色和动画。当全屏显示时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主题,状态栏会正确动画。

任何人都会遇到这种情况吗?

回答

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