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屬性設置點擊的波紋效果。