状态栏、导航栏、虚拟按键的动态隐藏和显示

getwindow

Window的addFlags(int flags)

flags-要设置的标志位

setFlags(int flags, int mask)

flags-新窗口标志(见窗口。LayoutParams)。

mask-哪一位窗口的标志位来修改。

//设置窗体全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//设置窗体始终点亮

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,

      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

//设置窗体背景模糊
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
        WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

//添加一体化状态栏

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

//添加透明导航栏

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

//隐藏底部虚拟键并且全屏

     if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
            View v = this.getWindow().getDecorView();
            v.setSystemUiVisibility(View.GONE);
        } else if (Build.VERSION.SDK_INT >= 19) {
            //for new api versions.
            View decorView = getWindow().getDecorView();
            int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(uiOptions);
        }


参考:https://blog.csdn.net/sdvch/article/details/44209959

1.View.SYSTEM_UI_FLAG_VISIBLE :状态栏和Activity共存,Activity不全屏显示。也就是应用平常的显示画面

2.View.SYSTEM_UI_FLAG_FULLSCREEN :Activity全屏显示,隐藏系统状态栏,如果设置了Window.FEATURE_ACTION_BAR_OVERLY同时隐藏Actionbar

3. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN :Activity全屏显示,但是状态栏不会被覆盖掉,而是正常显示,只是Activity顶端布   局会被覆盖住

4.View.INVISIBLE : Activity全屏显示,隐藏状态栏

5.View.SYSTEM_UI_FLAG_LOW_PROFILE  //夜间模式,系统控件颜色会变暗

6.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION  //隐藏虚拟按键,点击又会重新出现,这个会隐藏屏幕上的所有系统控件

7.SYSTEM_UI_FLAG_IMMERSIVE_STICKY   //提供了沉浸式的体验

8.SYSTEM_UI_FLAG_LAYOUT_STABLE   //在隐藏显示系统控件的过程中不会来移动我们的控件









猜你喜欢

转载自blog.csdn.net/xxdw1992/article/details/80372429
今日推荐