1. 程式人生 > >華為手機PopupWindow彈出時背景不變暗問題

華為手機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搜尋每一個結果的下面都會提示哪些詞彙不匹配,完全匹配則不提示


這是百度搜索的結果,翻好多頁都找不到這個答案: