我正在开发在Android Lollipop上运行的应用程序。我已使用以下代码设置状态栏颜色。
首先我设置此标志WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
&然后...
getWindow().setStatusBarColor(Color.RED);
但是我的应用需要动态设置FLAG_TRANSLUCENT_STATUS
但是当我设置此标志时,它完美地显示透明状态栏。稍后,当我想要回显状态栏时,WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
标志不起作用
答案 0 :(得分:2)
使用以下内容添加或删除FLAG_TRANSLUCENT_STATUS
标记:
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
答案 1 :(得分:1)
当您的应用在Lollipop上运行且您的活动主题继承自Theme.AppCompat.Light.DarkActionBar
时,默认情况下会启用状态栏的着色。
AFAIK FLAG_TRANSLUCENT_STATUS
只需要为Android KitKat上的状态栏添加颜色。
所以在你的情况下,你可以简单地使用
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(yourColor);
}
在您的活动中使用您喜欢的任何颜色(当然包括黑色);)