關於android系統中導航欄以及設定全屏的介紹
在實際應用開發中,我們經常需要獲取全螢幕或者隱藏導航欄的需求,其實就只需要設定幾個引數就搞定。
public static final int SYSTEM_UI_FLAG = 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;
這些flag都是關於全屏以及導航欄的
public void hideSystemUi() {
getWindow().getDecorView().setSystemUiVisibility(SYSTEM_UI_FLAG);
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
}
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
需要注意的是,這個隱藏的方法需要在onStart方法中而不是在onCreate方法中呼叫,因為onStart方法在鎖屏後再進入應用會再次執行,這樣會解決鎖屏導航欄再次出現的bug。