参考:https://www.jianshu.com/p/752f4551e134
https://blog.csdn.net/guolin_blog/article/details/51763825#commentsedit
沉浸式状态栏
// 方法一 实现 全屏显示 点击屏幕会消失;
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
int option = View.SYSTEM_UI_FLAG_FULLSCREEN// 隐藏状态栏
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;// 隐藏导航栏
// |View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
getWindow().getDecorView().setSystemUiVisibility(option);
if (getActionBar() != null) {
getActionBar().hide();
}
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
}
// 方法二 上滑下拉会出现导航栏、状态栏。Edittext抢焦点 后调用ll_root.setOnSystemUiVisibilityChangeListener 即可恢复 沉浸式状态栏。
@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);
}
}
private void initView() {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {// 解决 Edittext获取焦点后,退出沉浸式。
ll_root.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
onWindowFocusChanged(true);
}
});
}
}