2012-02-16 30 views
10

Tôi đang cố gắng để skin menu tùy chọn trên Android. Tôi đã thay đổi màu nền với chủ đề tùy chỉnh, nhưng tôi không thể thay đổi màu văn bản vì lý do nào đó.Trình đơn tùy chọn da Android

My Theme

<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> 

Phong cách của tôi cho phông chữ trình đơn tùy chọn

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

drawable của tôi cho bộ chọn nút màu 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> 

Đó màu chỉ là một hex color # c4c4c4

Tôi đang thiếu gì ở đây?

+0

Bạn đã thử ' # c4c4c4'? – Barney

+0

Tôi hoàn toàn quên về chủ đề này. Tôi thậm chí không nhớ dự án này là gì. Tôi có nên xóa câu hỏi này không? – smokingoyster

Trả lời

0

Câu hỏi này đã được hỏi theo nhiều cách khác nhau một số lần. Với cách bài trí XML, bạn có thể thay đổi màu nền, nhưng KHÔNG thể thay đổi màu sắc văn bản:

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

Bạn có thể, tuy nhiên, hãy viết một lớp tùy chỉnh để thực hiện lột da menu:

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

+0

Nó không hoạt động đối với tôi, tôi chỉ nhận được 'IllegalStateException' vì nhà máy đã được thiết lập. – BornToCode

+0

Điều này không đúng. Bạn có thể thay đổi màu văn bản bằng cách chỉ định nó trong chủ đề của bạn (styles.xml). – Luis

1

Bạn có thể thay đổi màu văn bản nhưng nó phải đi theo thẻ textColor. Bạn không thể đặt một drawable trong bất kỳ textColor (không phải trong phong cách, cũng không phải trong bố trí). Nếu bạn muốn thay đổi màu, hãy thay đổi kiểu của bạn thành màu này:

<style name="OptionsMenuFont" parent="@android:style/TextAppearance.Widget.IconMenu.Item"> 
    <item name="android:textColor">#c4c4c4</item> 
</style> 
Các vấn đề liên quan