在安卓6.0,增加了SYSTEM_UI_FLAG_LIGHT_STATUS_BAR这个Flag字段,可以设置状态栏的字体为深色,不是一直默认的白色了。在浅色背景的沉浸式状态栏中很有必要。
使用方式
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
window必须是FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS(绘画模式)且一定不能是FLAG_TRANSLUCENT_STATUS(半透明模式)
注:在8.0跟6.0系统上测试过,8.0这个并没有要求,6.0确实是需要这个前提
在一Activity多Fragment,各Fragment之间字体效果可能要求不同,需动态设置字体颜色
if (isDark) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);//黑色
} else {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);//白色
}
网友评论