2016-09-28 37 views
2

我用这种方式来设置光状态栏为Android M,并且它工作得很好:如何设置光状态栏为Androidň

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

回答

1

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

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)。);