參考: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);
}
});
}
}