在我的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”主题,则状态栏会正确设置动画。
其他人有这种经历吗?
答案 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);