华为手机PopupWindow弹出时背景不变暗问题

下面这段PopupWindow弹出时背景变暗效果的代码在网上随处可见:

	private void setBackgroundAlpha(float bgAlpha){
        WindowManager.LayoutParams layoutParams = MainActivity.this.getWindow().getAttributes();
        layoutParams.alpha = bgAlpha; //0.0-1.0
        MainActivity.this.getWindow().setAttributes(layoutParams);
	}
我之前也是用这段代码实现这个效果,真机调试并没有什么问题。后来产品发布后有用户反馈背景透明,字体显示不清,陆续又出现几例这种情况,都是华为的手机。在网搜索了好久,都没找到解决办法,今天终于解决了。很简单,只要多加一句代码就行,如下:

private void setBackgroundAlpha(float bgAlpha){
        WindowManager.LayoutParams layoutParams = MainActivity.this.getWindow().getAttributes();
        layoutParams.alpha = bgAlpha; //0.0-1.0
	MainActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);//多加这一句,问题就解决了!这句的官方文档解释是:让窗口背景后面的任何东西变暗
        MainActivity.this.getWindow().setAttributes(layoutParams);
	}

经验总结:这个问题困扰了我一两个月,今天终于解决了。其中得到的经验是:尽量使用google搜索,因为google确实比百度专业得多。

这是google搜索的结果,我用的就是第一个搜索结果的答案:而且google搜索每一个结果的下面都会提示哪些词汇不匹配,完全匹配则不提示


这是百度搜索的结果,翻好多页都找不到这个答案:

华为手机PopupWindow弹出时背景不变暗问题_第1张图片


你可能感兴趣的:(android,华为,PopupWindow)