当我在父全屏活动上显示警报对话框时,我不想显示 SystemUI

Stu*_*414 2 android notification-bar

我有一个全屏活动,但是当我在其上方显示警报对话框时,系统 UI 显示(系统通知栏)。有谁能够帮助我 ?我不想让它被看见。有什么方法可以隐藏系统通知栏,使其在警报对话框出现时不显示?

在此输入图像描述

在此输入图像描述

Sho*_*ing 6

使用 AlertDialog.Builder 构建 AlertDialog 并创建 AlertDialog。
在调用 show() 之前,将对话框的窗口标志设置为不可聚焦。
显示对话框后,在表示 AlertDialog 的窗口的decorView 上设置 SystemUiVisibility 标志,并清除不可聚焦标志。

    AlertDialog.Builder adBuilder = new AlertDialog.Builder(this);
    AlertDialog alertDialog = adBuilder.setCancelable(false).
            setMessage("Turn ended, Click OK").
            setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                }
            }).create();
    alertDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
    alertDialog.show();
    alertDialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    alertDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
Run Code Online (Sandbox Code Playgroud)

现在,当显示 AlertDialog 时,不会出现 SystemUI 元素。希望这可以帮助。