2012-02-16 155 views
10

我試圖在Android上選擇皮膚的選項。我用自定義主題更改了背景顏色,但由於某些原因,我無法獲取文本顏色。皮膚選項菜單Android

我的主題

<style name="default" parent="@android:style/Theme.NoTitleBar"> 

    <!-- Menu panel colors --> 
    <item name="android:panelBackground">@color/optionsMenuBackgroundColor</item> 
    <item name="android:panelFullBackground">@color/optionsMenuBackgroundColor</item> 

    <!-- Menu item colors --> 
    <item name="android:itemTextAppearance">@style/OptionsMenuFont</item> 

</style> 

我的選項菜單字體

<style name="OptionsMenuFont" parent="@android:style/TextAppearance.Widget.IconMenu.Item"> 
    <item name="android:textColor">@drawable/menu_item_font</item> 
</style> 

我對按鈕的顏色選擇器可繪製menu_item_font.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 

    <!-- Put other state colors up top --> 


    <item android:color="@color/optionsMenuTextColor" /> 

</selector> 

風格,色彩僅僅是一個十六進制顏色#c4c4c4

我在這裏錯過了什麼?

+0

你有沒有嘗試過簡單'<項目名稱=「機器人:文字顏色」>#c4c4c4'? – Barney 2013-03-01 10:03:35

+0

我完全忘記了這個主題。我什至不記得這是什麼項目。我應該刪除這個問題嗎? – smokingoyster 2013-03-01 15:21:39

回答

0

此問題已多次以不同方式提出。隨着XML的佈局,你可以改變背景顏色,但不能改變文字顏色:

http://code.google.com/p/android/issues/detail?id=4441

你可以,但是,寫一個自定義的類來完成剝皮菜單:

http://www.techjini.com/blog/customizing-background-and-text-color-in-options-menu-android/

+0

它不適用於我,因爲工廠已經設置,所以我只得到'IllegalStateException'。 – BornToCode 2013-11-25 13:00:08

+0

這是不正確的。您可以通過在主題(styles.xml)中指定文本顏色來更改文本顏色。 – Luis 2014-02-03 15:43:46

1

您可以更改文字顏色,但應該放在textColor標籤下。你不能在任何textColor中放置一個drawable(樣式和佈局都不)。如果你想改變顏色,你的風格改成這樣:

<style name="OptionsMenuFont" parent="@android:style/TextAppearance.Widget.IconMenu.Item"> 
    <item name="android:textColor">#c4c4c4</item> 
</style>