View的foreground屬性

View有一個foreground屬性,這個屬性用來設置佈局的前景色。

如下:
設置background 和 foreground的效果,其餘佈局相同
這裏寫圖片描述

但是foreround的屬性有時設置無效:
下圖是在Android4.4環境下爲Linearlayout和Fragment設置foregroud
這裏寫圖片描述
我們發現,LinearLayout的前景色並未顯示出來,查看源碼後發現:

case R.styleable.View_foreground:
           if (targetSdkVersion >= VERSION_CODES.M || this instanceof FrameLayout) {
               setForeground(a.getDrawable(attr));
             }
             break;

當Android版本大於 M 即6.0時,或者當前佈局爲FrameLayout時,使用foreground纔會生效。

關於Google爲什麼做,我還是不得而知。
foreground屬性通常用於給一些佈局,主要是幀佈局設置一個半透明的前景色,以達到特定的效果,比如,CardView就需要使用foreground屬性設置點擊的波紋效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章