setStatusBarColor不工作[Lollipop]

时间:2014-11-17 18:23:16

标签: android

如何更改状态栏颜色?我用5.0构建,我的目标sdk是21,这段代码不起作用......

setContentView(R.layout.main_activity);
if (Build.VERSION.SDK_INT >= 21){
    try {
        getWindow().setStatusBarColor(Color.RED);

    } catch (Exception e) {
        e.printStackTrace();
    }
}   

1 个答案:

答案 0 :(得分:8)

Documentation说的是关于setStatusBarColor方法的那个

  

"要使此操作生效,窗口必须绘制系统栏   背景与FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS和   不得设置FLAG_TRANSLUCENT_STATUS。 "

所以对我来说,这很有用(注意代码中的" addFlags"行):

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        getWindow().setStatusBarColor(Color.RED);
    }