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

时间:2017-02-06 05:12:29

标签: android notification-bar

我有一个全屏活动,但当我在其上方显示警告对话框时,系统UI显示(系统通知栏)。有谁能够帮我 ?我不希望它可见。是否有任何方法可以隐藏系统通知栏,以便在出现警告对话框时显示?

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:1)

这适用于我,在api 21和16

上测试
{{1}}

答案 1 :(得分:1)

在实例化Dialog时使用了哪个Context-object?

也许尝试使用您的活动?你可以通过传递"这个"作为背景。

我知道有些人正在调用getApplicationContext(),这不是(总是)正确的方式。

答案 2 :(得分:0)

使用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);

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