Android沉浸式模式

时间:2016-06-30 19:50:38

标签: android android-immersive

我想隐藏导航栏。如果用户将手指从外到内用药,Onyl会显示出来。 我测试了这段代码:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

  if(hasFocus) {
        getWindow().getDecorView().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);
    }
}

活动开始良好,导航栏不显示。 Buti有下一个问题: 1)如果在导航栏显示的任何地方触摸屏幕。 2)当它显示时,它不显示透明。 3)导航栏永远不会隐藏。

如何添加这三项?我错过了什么。

1 个答案:

答案 0 :(得分:0)

如文档https://developer.android.com/training/system-ui/immersive.html#sticky

中所述,将粘性标记View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY添加到setSystemUiVisibility

从屏幕边缘滑动后,导航栏会显示几秒钟,然后再次隐藏。