在当前Activity弹出PopuoWindow后,点击取消弹窗,然后结束当前Activity时会出现短暂黑屏现象。这是由于设置背景透明度时候造成的。
//设置添加屏幕的背景透明度
public void backgroundAlpha(Activity context, float bgAlpha) {
if (context != null) {
WindowManager.LayoutParams lp = context.getWindow().getAttributes();
lp.alpha = bgAlpha;
if (bgAlpha == 1f) {
context.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//划重点 ==>> 不移除该Flag的话,可能出现黑屏的bug
} else {
context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug
}
context.getWindow().setAttributes(lp);
}
}
注意方法第五行,本人传入的值是1f,所以此处令bgAlpha == 1f,原文作者令bgAlpha == 0.5f,本人尝试过0.5f和1f,都不会出现黑屏,不知道其中缘由,所以需测试。
致谢原文作者。
原文链接:https://blog.csdn.net/jhl122/article/details/79977066