我用这种方式设置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
设置灯光状态栏?
答案 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));