如何为Android N设置灯光状态栏

时间:2016-09-28 09:33:31

标签: android

我用这种方式设置Android M的灯光状态栏,效果很好:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {                    
     activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);

}

但是,它在Android N不起作用。状态栏中的单词仍为白色。这是一个错误吗?或者有没有办法在Android N设置灯光状态栏?

2 个答案:

答案 0 :(得分:1)

好吧,我找到了问题。它确实设置了灯状态条模式。但之后,我再次更改状态栏的颜色,再次调用setSystemUiVisibility()并设置其他值。因此灯状态栏无效。

答案 1 :(得分:0)

只需从任何活动中调用此方法并传递颜色代码

public static void makeStatusBarLight(Activity activity, int color) {
        Window window = activity.getWindow();
        window.addFlags(FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.clearFlags(FLAG_TRANSLUCENT_STATUS);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        window.setStatusBarColor(color);
    }
    activity.getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

}

像这样打电话

makeStatusBarLight(BaseActivity.this,getResources()。getColor(R.color.yourcolor));