首先说明状态栏和导航栏窗口是系统窗口,而activity对应的是应用窗口,他们属于不同层级的窗口
然后状态栏/导航栏系统级窗口是在App应用窗口之上,所以activity可视内容的区域是除去状态栏和导航栏及系统应用窗口区域进行显示
protected void setStatusBarFullTransparent() {
if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
Window window = getWindow();
// 1. SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖。
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
// 如果延伸到状态栏下面之后,那么就要设置状态为透明的颜色,这样才能看到状态栏下Activity的布局
window.setStatusBarColor(Color.TRANSPARENT);
}
}
这块必须注意不要在Activity的跟布局设置 fitsSystemWindows=“true” 这句话的作用是Activity不会全屏显示,并且显示状态栏设置成透明颜色,此时就会出现状态栏占据着位置,并且是以白色状态呈现在用户眼前,如下图,红色标记出来的