Android在全屏模式下,状态栏,ActionBar,导航栏的显示和隐藏问题

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

你可能感兴趣的