2013-09-24 36 views
8

我有這樣的XML:Android的動作條文字顏色

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

背景顏色設置正確,但標題顏色沒有變化。我在哪裏犯錯? 謝謝!

+0

我相信這SO鏈接將幫助您 - http://stackoverflow.com/questions/16770015/android-title-bar-color-dont-change – zillaofthegods

回答

21

它改成這樣:

<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

感謝,它的工作!你能解釋一下爲什麼它需要在這個樣式標籤裏面。我想知道原因,否則我什麼都沒學到。 – Bade

+0

沒問題。問題是,你在你的基本主題中覆蓋了'titleTextStyle',但它應該被你的ActionBar主題覆蓋。 – Ahmad

+0

所以titleTextStyle屬於actionBar「組」?我認爲它包含整個應用程序 – Bade

1

我使用這個

<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

你也可以改變編程這樣

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

我不知道這是因爲更新,但我不得不使用getActionBar()來訪問它 – JackalopeZero

0

這是什麼工作對我來說......

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