2019年2月23日
14:05
全屏模式下,状态栏,ActionBar,导航栏的显示和隐藏问题
1、当只设置View.SYSTEM_UI_FLAG_FULLSCREEN 隐藏状态栏,不隐藏导航栏,我们触摸屏幕的任意位置都会退出全屏(全屏不包括导航栏)
2、SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN,状态栏和导航栏同时隐藏了,我们触摸屏幕的任意位置都会退出全屏(全屏包括状态栏和导航栏)
3、当只设置View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 和View.SYSTEM_UI_FLAG_LAYOUT_STABLE,注意两个Flag必须要结合在一起使用,不隐藏状态栏,不隐藏导航栏,(全屏不包括导航栏)我们触摸屏幕的任意位置都不会退出全屏
4、不隐藏状态栏,不隐藏导航栏,状态栏和导航栏设置成透明色(全屏包括状态栏和导航栏)我们触摸屏幕的任意位置都不会退出全屏
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
getWindow().setStatusBarColor(Color.TRANSPARENT);
5、沉浸式,隐藏状态栏,隐藏导航栏,(全屏包括状态栏和导航栏),我们触摸屏幕的任意位置都不会退出全屏
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && Build.VERSION.SDK_INT >= 19) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
6、View.SYSTEM_UI_FLAG_FULLSCREEN 和windowFullscreen同时设置,隐藏状态栏,不隐藏导航栏,我们触摸屏幕的任意位置都不会退出全屏(全屏不包括导航栏)
即设置windowFullscreen,我们触摸屏幕的任意位置都会不退出全屏
参考https://blog.csdn.net/Siobhan/article/details/51018382
https://blog.csdn.net/guolin_blog/article/details/51763825