美文网首页
使用沉浸式实现全屏模式

使用沉浸式实现全屏模式

作者: caspar51688 | 来源:发表于2017-08-04 16:28 被阅读10次

    强调内容Android 4.4系统(API等级19)引入了一个新 SYSTEM_UI_FLAG_IMMERSIVE为标志 setSystemUiVisibility() ,可以让您的应用程序去真正的“全屏幕”。这个标志,当与结合 SYSTEM_UI_FLAG_HIDE_NAVIGATION和 SYSTEM_UI_FLAG_FULLSCREEN标志,隐藏导航栏和状态栏,让您的应用程序捕获屏幕上的所有触摸事件。


    • 使用非粘性浸入
    // This snippet hides the system bars.
    private void hideSystemUI() {
        // Set the IMMERSIVE flag.
        // Set the content to appear under the system bars so that the content
        // doesn't resize when the system bars hide and show.
        mDecorView.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 // hide nav bar
                | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                | View.SYSTEM_UI_FLAG_IMMERSIVE);
    }
    
    // This snippet shows the system bars. It does this by removing all the flags
    // except for the ones that make the content appear under the system bars.
    private void showSystemUI() {
        mDecorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    }
    

    • 使用粘性浸入
    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);}
    

    粘性浸入:使用粘性浸入系统栏自动片刻后能再次隐藏,注意:标记的"粘性"浸入不触发任何听众,如在此模式下暂时显示system bar处于过渡状态。一般像阅读器等场景等建议使用粘性浸入。


    非粘性浸入: 当启用浸入全屏模式,你的activity将继续接收所有触摸事件。用户可以沿所在的system bar正常显示区域向内轻扫显示system bar。这将清除SYSTEM_UI_FLAG_HIDE_NAVIGATION标志和SYSTEM_UI_FLAG_FULLSCREEN标志,如果申请过。使system bar变得可见。这也触发您的 View.OnSystemUiVisibilityChangeListener,如果有设置。

    相关文章

      网友评论

          本文标题: 使用沉浸式实现全屏模式

          本文链接:https://www.haomeiwen.com/subject/elfblxtx.html