2013-09-24 20 views
8

Ich habe xml wie folgt aus:Android ActionBar Textfarbe

<resources> 

<style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 
</style> 

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="android:titleTextStyle">@style/TitleColor</item> 
</style> 

<style name="MyActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">#800000</item> 
</style> 

<style name="TitleColor" parent="android:TextAppearance.Holo.Widget.ActionBar.Title"> 
    <item name="android:textColor">#000099</item> 
</style> 
</resources> 

Hintergrundfarbe richtig eingestellt ist, aber Titel Farbe ändert sich nicht. Wo habe ich Fehler gemacht? Danke!

+0

Ich glaube, das SO Link wird Ihnen helfen - http://stackoverflow.com/questions/16770015/android-title-bar-color-dont-change – zillaofthegods

Antwort

21

ändern es dazu:

<resources> 

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> 
    </style> 

    <style name="AppTheme" parent="AppBaseTheme"> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <style name="MyActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">#800000</item> 
     <item name="android:titleTextStyle">@style/TitleColor</item> 
    </style> 

    <style name="TitleColor" parent="android:TextAppearance.Holo.Widget.ActionBar.Title"> 
     <item name="android:textColor">#000099</item> 
    </style> 
</resources> 
+1

Dank, es funktionierte! Kannst du mir einfach erklären, warum es in diesem Style-Tag sein muss. Ich möchte wissen, denn sonst habe ich nichts gelernt. – Bade

+0

Kein Problem. Das Problem war, dass Sie "titleTextStyle" in Ihrem Basisthema übersteuert haben, es sollte jedoch von Ihrem ActionBar-Theme überschrieben werden. – Ahmad

+0

so titleTextStyle gehört zu ActionBar "Gruppe"? Ich dachte, es enthält die gesamte Anwendung – Bade

1

Ich verwende diese

<resources> 

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="actionBarStyle">@style/myTheme.ActionBar</item> 
    <item name="actionMenuTextColor">@color/action_text_color</item> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"></style> 

<style name="myTheme.ActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
    <item name="titleTextStyle">@style/myTheme.ActionBar.Text</item> 
    <item name="background">@drawable/abc_tab_indicator_ab_holo</item> 
    <item name="backgroundStacked">@drawable/abc_ab_transparent_dark_holo</item> 
    <item name="backgroundSplit">@drawable/abc_ab_bottom_transparent_light_holo</item> 
</style> 

<style name="myTheme.ActionBar.Text" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@color/action_text_color</item> 
</style> 

2

Sie auch programmatisch wie diese

ändern
ActionBar actionbar = getSupportedActiobar(); 
actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBarTitle </font>")); 
+0

Ich weiß nicht, ob dies wegen einer Aktualisierung ist, aber ich musste getActionBar() verwenden, um darauf zuzugreifen – JackalopeZero

0

das ist, was funktioniert für mich ...

<style name="MyActionBar" 
    parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">@color/titleBarBgColor</item> 
    <item name="android:titleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item> 
    <item name="android:subtitleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item> 
    <!-- Support library compatibility --> 
    <item name="background">@color/titleBarBgColor</item> 
    <item name="titleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item> 
    <item name="subtitleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item> 
</style> 
<style name="EldTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/titleBarTextColor</item> 
</style>