2013-04-26 16 views
26

Mein Code ist wie folgt und während es funktioniert (wenn ich das übergeordnete Thema in Theme.Sherlock oder Theme.Sherlock.Light ändern das Theme es ändert) ändert es nicht die Titelfarbe.Ändern der Aktionsleiste Titelfarbe

Der Code ist so ziemlich das gleiche wie here

Code:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

<style name="MyTheme" parent="@style/Theme.Sherlock"> 
<item name="actionBarStyle">@style/MyTheme.ActionBarStyle</item> 
<item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item> 
</style> 

<style name="MyTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar"> 
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
</style> 

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Title" > 
    <item name="android:textColor">#FF0000</item> 
</style> 

</resources> 

Antwort

35

Von Jake Wharton ActionBarSherlock Website:

gespiegelten Attribute

Aufgrund von Einschränkungen in Android Themensy Stamm irgendein Thema Anpassungen müssen in zwei Attribute deklariert werden. Die normalen android-prefixed Attribute wenden das Design auf die native Aktionsleiste an, und die Attribute ohne Präfix sind für die benutzerdefinierte Implementierung.

Hatte MyTheme.ActionBarStyle zu ändern:

<style name="MyTheme.ActionBarStyle" parent="@style/Widget.Sherlock.ActionBar"> 
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    <item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    </style> 

Jetzt ist der Titel Textfarbe geändert hat.

+0

aber es macht Warnung Android: titleTextStyle erfordert API-Ebene 11 (aktuelle min ist 10) Ich benutze ABC! Wie benutze ich dies, während wir mit api Level 10 mit ABS oder ABC arbeiten –

+1

Arbeitete für mich! Vielen Dank! – BostonGeorge

+2

@LOG_TAG müssen Sie es in der Datei styles.xml im Verzeichnis values-v11 definieren, so dass API> = 11 diesen Stil verwendet und API <11 Stile im Werteverzeichnis – vanomart

46

i haben sich geändert Titel Farbe wie dieses

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

Nice hack ..Arbeiten gut –

+1

gute, funktioniert wie ein Charme – yrazlik

+1

Danke @MilapTank .. es funktioniert gut – Basant

12

Verwenden Sie den folgenden Code andere Farbe zu liefern Text und ActionBar Hintergrund ActionBar nur gegen die Aktivität in einem offenkundigen unten Thema verwenden, in dem Sie ausgeben möchten :)

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
     <item name="android:actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
     <item name="android:titleTextStyle">@style/TitleBarTextColor</item> 
     <item name="android:background">YOUR_COLOR_CODE</item> 
    </style> 

    <style name="TitleBarTextColor" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
     <item name="android:textColor">YOUR_COLOR_CODE</item> 
    </style> 
1

in Ihrer style.xml in Werte-Ordner wird dies die Farbe Ihrer Aktionsleiste ändern .. Ersetzen Sie # 666666 mit Ihrem ausgewählten Farbcode für die Titelhintergrundfarbe und ersetzen Sie # 000000 für Ihre Titeltextfarbe.

<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/NewActionBar</item> 
</style> 

<style name="NewActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
<item name="android:titleTextStyle">@style/TitleBarTextColor</item> 
<item name="android:background">#666666</item> 
</style> 
<style name="TitleBarTextColor" parent="@style/TextAppearance.Sherlock.Widget.ActionBar.Menu"> 
    <item name="android:textColor">#000000</item> 
</style> 

dann vergessen Sie nicht, Ihre Manifest-Datei zu bearbeiten -> Android: theme = "@ style/NewTheme"

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/NewTheme" > 
    <activity 
     android:name="com.nearby.welcome.Splash" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 
4

ich alle oben genannten Methoden versucht, es nicht für mich gearbeitet. ich habe gerade durch den Code unten erreicht ..

Spannable text = new SpannableString(actionBar.getTitle()); 
text.setSpan(new ForegroundColorSpan(Color.BLUE), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
actionBar.setTitle(text); 
3

einfachste Weg, die für mich gearbeitet ist folgend in Thema Stil hinzuzufügen:

<item name="android:textColorPrimary">@color/orange_dark</item> 
+1

Dies ist einfach nicht richtig. Es wird die gesamte Farbe des Anwendungstextes ändern. – viper

Verwandte Themen