Android PopupWindow显示之后所在的Activity结束的时候出现短暂黑屏问题

在当前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

The one who wants to wear the crown, bears the crown.
原文地址:https://www.cnblogs.com/catherineliu/p/13048431.html