从AActivity跳转到BActivity,BActivity里弹出自定义popupWindow,返回到AActivity的过程中,有短暂黑屏,刚开始以为是加载数据过多的原因,后来发现只要弹出PopupWiindow,就有黑屏。在popupWindow中弹出时,设置透明度为0.5,消失时,设置透明度为1
解决办法:
在设置透明度的方法中,加入:
/**
* 设置添加屏幕的背景透明度
*
* @param context
* @param bgAlpha
*/
public static void backgroundAlpha(Context context, float bgAlpha) {
WindowManager.LayoutParams lp = ((Activity) context).getWindow()
.getAttributes();
lp.alpha = bgAlpha; // 0.0-1.0
if (bgAlpha ==1) {
//不移除该Flag的话,可能出现黑屏的bug
((Activity) context).getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}else {
//此行代码主要是解决在华为手机上半透明效果无效的bug
((Activity) context).getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
}
((Activity) context).getWindow().setAttributes(lp);
}
参考文章:
网友评论