我有一个全屏活动,但当我在其上方显示警告对话框时,系统UI显示(系统通知栏)。有谁能够帮我 ?我不希望它可见。是否有任何方法可以隐藏系统通知栏,以便在出现警告对话框时显示?
答案 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元素。希望这会有所帮助。