Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 全屏覆盖,不带后退/主页/菜单按钮_Android_User Interface - Fatal编程技术网

Android 全屏覆盖,不带后退/主页/菜单按钮

Android 全屏覆盖,不带后退/主页/菜单按钮,android,user-interface,Android,User Interface,我有这个功能在我的活动上显示一个全屏黑色覆盖。模仿屏蔽行为 private void showBlackOverlay() { Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen); dialog.show(); } 但仍然可以看到返回/主页/菜单按钮。我怎么能把它们藏起来? 我也需要它在旧版本的android上工作 像这样试试 View decorView = d

我有这个功能在我的活动上显示一个全屏黑色覆盖。模仿屏蔽行为

private void showBlackOverlay() {
    Dialog dialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
    dialog.show();
}
但仍然可以看到返回/主页/菜单按钮。我怎么能把它们藏起来? 我也需要它在旧版本的android上工作

像这样试试

View decorView = dialog.getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
像这样试试

View decorView = dialog.getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

据我所知,从Android 4.4 API级别19,您可以做到这一点。您可以在这里查看详细信息:

据我所知,从Android 4.4 API级别19,您可以做到这一点。您可以在此处查看详细信息:

尝试以下操作:

刚刚在我的Nexus7Android 4.4.2上尝试了这段代码,效果很好

public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
        if (hasFocus) {
            decorView
                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }
}
试着这样做:

刚刚在我的Nexus7Android 4.4.2上尝试了这段代码,效果很好

public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
        if (hasFocus) {
            decorView
                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        }
    }
}

如果我的回答对你有效,请接受。谢谢如果我的回答对你有效,请接受。谢谢DecorView是实际保持窗口背景可绘制的视图。从活动中调用getWindow.setBackgroundDrawable可以通过更改DecorView的背景drawable来更改窗口的背景。DecorView是实际保存窗口背景drawable的视图。从活动中调用getWindow.setBackgroundDrawable可通过更改DecorView的背景可绘制来更改窗口的背景。