1. 程式人生 > >使用getBackground().setAlpha(0)後,導致其他佈局白色背景變透明的問題

使用getBackground().setAlpha(0)後,導致其他佈局白色背景變透明的問題

1、問題描述:

最近專案中使用如下方法將mLayout的白色背景設定為透明以後,app中所有白色背景的view的背景色都變透明瞭,對話方塊彈出來也是透明的,實在是詭異,定位了好半天才找到原因出在下面這句程式碼上。

mLayout.getBackground().setAlpha(0);

以上問題只出現在5.0以上系統的手機上。

2、分析原因:

在佈局中多個控制元件同時使用一個資源的時候,如R.color.white,這些控制元件會共用R.color.white的狀態,一旦在某處使用getBackground().setAlpha()將其白色設為透明後,其餘使用此資源的控制元件的白色也會變為透明。

3、解決:

將mLayout.getBackground().setAlpha(0);改為:

mLayout.getBackground().mutate().setAlpha(0);