我有一个全屏 Activity ,但是当我在其上方显示一个警告对话框时,系统 UI 显示(系统通知栏)。有谁能够帮助我 ?我不希望它可见。有什么方法可以隐藏系统通知栏,使其在出现警报对话框时不显示?
最佳答案
使用 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 元素不会出现。希望这会有所帮助。
关于android - 当我在父级全屏 Activity 上显示警告对话框时,我不想显示 SystemUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060698/