2013-07-04 20 views
14

Ich möchte die ActionBar meiner Android-Anwendung anpassen.
Ich benutze Actionbar Sherlock.
Meine min Ziel sdk 14, Ziel sdk 17.
Ich habe ein Thema, das die Hintergrundfarbe und den Haupttiteltext
aber ändern kann ich nicht die Untertitel Textfarbe ist
mein Stil hier

Ändern Android Actionbar Untertitelfarbe

gezeigt ändert
<style name="MyTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBarStyle</item> 
</style> 

<style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    <item name="android:background">#8B0000</item> 
</style> 

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

</style> 

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

</style> 


was hat man falsch gemacht?

Antwort

21

Gerade titleTextStyle zu subtitleTextStyle

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

    <style name="MyTheme.ActionBarStyle"parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:subtitleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    </style> 

    <style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/red</item> 
    </style> 
+3

, dass der Titel Stil Untertitel gibt. Der Untertitel-Stil sollte von @android: style/TextAppearance.Holo.Widget.ActionBar.Subtitle geerbt werden. – MemoryLeak

0

ich damit endete ändern (Seine näher an, was ich brauche)

@style/Widget.Styled.ActionBar @style/Widget.Styled.ActionBar

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar.Solid"> 
    <item name="subtitleTextStyle">@style/TextAppearance.Sherlock.Widget.Styled.ActionBar.Subtitle</item> 
    <item name="android:subtitleTextStyle">@style/TextAppearance.Sherlock.Widget.Styled.ActionBar.Subtitle</item> 
    <item name="android:background">#8B0000</item> 
</style> 

<style name="TextAppearance.Sherlock.Widget.Styled.ActionBar.Subtitle" parent="Widget"> 
    <item name="android:textSize">12sp</item> 
</style> 

<style name="OverFlow" parent="Widget.Sherlock.ActionButton.Overflow"> 
    <item name="android:src">@drawable/abs__ic_menu_moreoverflow_holo_light</item> 
</style> 


2

fast da. Hier ist der Code:

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

<style name="MyTheme.ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    <item name="android:subtitleTextStyle">@style/MyTheme.ActionBar.Subtitle</item> 
    <item name="android:background">#8B0000</item> 
</style> 

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

<style name="MyTheme.ActionBar.Subtitle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle"> 
    <item name="android:textColor">#FF0000</item> 
</style> 
+0

Wenn Sie eine Warnung auf API-Ebene 13 erhalten, verwenden Sie einfach (für TitleTextStyle und Subtitle) @ android/style/TextApperance für das übergeordnete Element. –

3

Diese Reihe von Stilen formatiert die Aktionsleiste, einschließlich Hintergrund, Titel und Untertitel Text; es formatiert auch die Registerkarten, einschließlich aller Staaten (ausgewählt, nicht ausgewählte und alle fokussierten/gedrückt Kombinationen) sowie die Registerkarte Text-Schriftart und -größe (pro Android-Entwickler Anweisung https://developer.android.com/training/basics/actionbar/styling.html):

<!-- Base application theme. --> 
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/themeActionBar</item> 
    <item name="android:actionBarTabTextStyle">@style/styleActionBarTabText</item> 
    <item name="android:actionMenuTextColor">@color/actionbar_text</item> 
    <item name="android:actionBarTabStyle">@style/styleActionBarTabs</item> 
    <!-- Support library compatibility --> 
    <item name="actionBarStyle">@style/themeActionBar</item> 
    <item name="actionBarTabTextStyle">@style/styleActionBarTabText</item> 
    <item name="actionMenuTextColor">@color/actionbar_text</item> 
    <item name="actionBarTabStyle">@style/styleActionBarTabs</item> 
</style> 

<!-- ActionBar styles --> 
<style name="themeActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">@drawable/abactionbargradient</item> 
    <item name="android:titleTextStyle">@style/styleActionBarTitleText</item> 
    <item name="android:subtitleTextStyle">@style/styleActionBarSubTitleText</item> 
    <!-- Support library compatibility --> 
    <item name="background">@drawable/abactionbargradient</item> 
    <item name="titleTextStyle">@style/styleActionBarTitleText</item> 
    <item name="subtitleTextStyle">@style/styleActionBarSubTitleText</item> 
</style> 

<!-- ActionBar title text --> 
<style name="styleActionBarTitleText" 
    parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"> 
    <item name="android:textColor">@color/actionbar_title_text</item> 
    <!-- The textColor property is backward compatible with the Support Library --> 
</style> 

<!-- ActionBar title text --> 
<style name="styleActionBarSubTitleText" 
    parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"> 
    <item name="android:textColor">@color/actionbar_sub_title_text</item> 
    <!-- The textColor property is backward compatible with the Support Library --> 
</style> 

<!-- ActionBar tabs text --> 
<style name="styleActionBarTabText" 
    parent="@style/Widget.AppCompat.ActionBar.TabText"> 
    <item name="android:textColor">@color/actionbar_text</item> 
    <item name="android:textSize">10dp</item> 
    <!-- The textColor property is backward compatible with the Support Library --> 
</style> 

<!-- ActionBar tabs styles --> 
<style name="styleActionBarTabs" 
    parent="@style/Widget.AppCompat.ActionBar.TabView"> 
    <!-- tab indicator --> 
    <item name="android:background">@drawable/abactionbartabs</item> 

    <!-- Support library compatibility --> 
    <item name="background">@drawable/abactionbartabs</item> 
</style> 

Dieser Satz von Styles sieht besonders gut aus, wenn es sich bei den Zeichengaben um Farbverläufe handelt, bei denen einige zusammenhängende Farbwerte verwendet werden (z. B. Lavendel zu Violett für ausgewählt und Lila zu Lavendel für nicht ausgewählt, um die Werte für dunkler und heller für fokussierte Farben zu ändern).

0

Code unten in Ihrer Tätigkeit Datei hinzufügen

actionBar.setSubtitle(Html.fromHtml("<font color='#FFBF00'>Here ActionBar Subtitle</font>"));