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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值