2010-06-28 35 views
7

我使用setTheme改變了onCreate中的活動主題(即使在調用super.onCreate()之前我也這麼做了,因爲這應該是更可靠的)。如何更改主題中的textColorPrimary?

它的確可以改變背景和前景色。不過,我的佈局有幾個使用textAppearanceLarge等風格的元素。現在Android的textAppearanceLarge內部使用textPrimaryColor - 這仍然是我的主題。

我試圖覆蓋主題中的主要文本顏色,但似乎並不奏效。

這裏是主題的重要組成部分:

<style name="Theme.MyApp.White"> 
    <item name="android:background">@android:color/white</item> 
    <item name="android:textColor">#000000</item> 
</style> 

背景顯示爲白色,純TextViews出現黑屏......但使用textAppearanceLarge TextViews是白色的,這樣無形的(白色白色)。

我試過這樣的事情:

<item name="android:ColorPrimary">#000000</item> 
    <item name="android:textColorPrimary">#000000</item> 
    <item name="android:attr/textColorPrimary">#000000</item> 

但這些都不做任何事情。什麼是魔術技巧?

回答

1

原來我找錯了樹。覆蓋顏色和一切工作得很好。但是,通過在我的主題中定義android:background,儘管我覆蓋了所有顏色(包括textColorPrimary),但所有內容都完全混亂,並且所有文本都顯示爲白色。省略android:background訣竅。

+0

啊。很高興爲你解決問題! ;) – zsniperx 2010-10-20 18:37:27

+0

我仍然感謝你的回答(儘管你更多地談論風格,但我正在考慮主題)。我慢慢地開始獲得它,儘管它仍然有點不穩定。 – EboMike 2010-10-20 19:01:56

6

只是作爲一種解決方法,而不是在佈局使用textAppearanceLarge,(如果你使用XML來構建佈局)的,定義模仿了Android默認的,除非你可以改變styles.xml自己textAppearanceLarge風格顏色變白。

XML佈局:

<!-- example textview --> 
<TextView style="@style/large" android:text="text goes here"></TextView> 

然後在styles.xml

<style name="large"> 
    <item name="android:textColor">@android:color/white</item> 
    <!-- other necessary items here like font etc.--> 
</style> 
+0

感謝狙擊!詳細說明:我試圖將主題添加到我可以切換的應用程序中,所以基本上每個主題都有一個樣式來定義整個外觀 - 如果用戶選擇「白色」主題,則所有內容都將爲黑色白色等。我不知道如果我有一個單獨的「大」風格,我會如何設置。 – EboMike 2010-10-19 04:18:10

+0

你的答案工作,但它不是正確的方式來創建Android主題,我也期待解決方案,但前進的方法是編輯內置的Android顏色屬性,以便於顏色自定義。 – jjalonso 2013-09-01 14:26:54