2011-08-23 45 views
5

我嘗試製作一個ExpandableListView,其中的組頭被繪製爲逆。通過XML更改文本顏色,大小等沒有問題。我甚至發現如何使用系統默認值如什麼樣式/ attr/drawable爲逆背景?

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@android:style/TextAppearance.Medium.Inverse" 
/> 

但是,對於背景顏色?!我不明白爲什麼這些樣式不包含背景顏色信息?!

當然,我可以使用直接的顏色,但我尋找良好的默認背景屬性或樣式。像「style/Background.For.TextAppearance.Medium.Inverse」;-)

什麼是一個很好的解決方案?因此,對於黑色主題設備,我會變成白色/灰色,而對於白色主題,我會變黑。

或者我應該簡單地使用R.color.background_light?

問候,約爾格

PS:第一個問題在這裏;-)感謝名單給所有的人在這裏回答的最後幾個月和幾年:你偉大的人,似乎更容易,我發現在編程重入經過12年的休息;-)

回答

-1

這是因爲樣式隻影響TextView的文本顏色,默認情況下背景是透明的。你將不得不手動改變背景

android:backround="#FFFFFF" 

你當然可以用你選擇的顏色替換#FFFFFF。

android:background="@color/my_color_choice" 

創建顏色資源文件:Web colors in an Android color xml resource file

現在,你可能會注意到背景不填充所有你想要的區域,要解決這個問題,或者你可以從你的顏色資源使用選擇顏色將TextView放置在ViewGroup(LinearLayout,RelativeLayout)中並設置ViewGroup的背景色。

0

正如您所看到的,名稱中帶有「TextAppearance」的樣式僅影響視圖的前景文本屬性。它們適用於android:textAppearance屬性。名稱中帶有「Widget」的樣式定義了所有UI屬性,並且可以在style屬性中工作,但Android並未定義「Widget.TextView.Inverse」樣式。

當我想顯示控制檯般的日誌作爲反向文本視圖,我用下面的XML:

<TextView 
    android:textAppearance="@style/TextAppearance.AppCompat.Small.Inverse" 
    android:background="?android:colorForeground" 
    ... /> 

它採用主題的前景色爲背景的視圖。黑色主題以白色顯示黑色文字,而在淺色主題中則以黑色顯示淺色文字。