华为手机弹出Popupwindow后,切换Activity短暂黑屏

来源:互联网 发布:成都兴邦咨询公司知乎 编辑:程序博客网 时间:2024/04/29 09:57

从AActivity跳转到BActivity,BActivity里弹出自定义popupWindow,返回到AActivity的过程中,有短暂黑屏,刚开始以为是加载数据过多的原因,后来发现只要弹出PopupWiindow,就有黑屏。在popupWindow中弹出时,设置透明度为0.5,消失时,设置透明度为1
解决办法:
在设置透明度的方法中,加入:

  /**     * 设置添加屏幕的背景透明度     * <p>     *     * @param bgAlpha     */    public void backgroundAlpha(float bgAlpha)    {              WindowManager.LayoutParams lp = mContext.getWindow().getAttributes();        lp.alpha = bgAlpha;        if (bgAlpha == 1) {            mContext.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//不移除该Flag的话,可能出现黑屏的bug        } else {            mContext.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//此行代码主要是解决在华为手机上半透明效果无效的bug        }        mContext.getWindow().setAttributes(lp);    }

参考文章:
Android中为PopupWindow设置半透明背景的方案(兼容华为手机)

阅读全文
1 1