2013-07-04 24 views
14

Chcę dostosować pasek akcji mojego Androida.
Używam Actionbara Sherlocka.
Moja min cel SDK 14, cel SDK 17.
mam motywu, który zmienia kolor tła i tytuł główny tekst
jednak nie mogę zmienić koloru napisów tekst
mój styl jest pokazany tutaj

Zmiana koloru podtytułu paska narzędzi Android

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


co zrobiliście źle?

Odpowiedz

21

Wystarczy zmienić titleTextStyle do 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

Daje styl Tytuł do napisów. Styl napisów powinien być dziedziczony z '@android: style/TextAppearance.Holo.Widget.ActionBar.Subtitle'. – MemoryLeak

0

skończyło się to (jej bliżej, co trzeba)

@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

Prawie tam. Oto kod:

<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

Jeśli otrzymasz ostrzeżenie o poziomie API 13 - po prostu użyj (dla obu TitleTextStyle i Subtitle) @ android/style/TextApperance dla rodzica. –

3

Ten zestaw stylów formatuje pasek akcji, w tym tło, tytuł i tekst napisów; to formatuje także zaczepy, w tym wszystkich państw (wybrane, zaznaczone, i wszystkich ostrych tłoczonych kombinacjach /), a także czcionki i rozmiaru tekstu zakładka (za programistów Androida instrukcji 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> 

ten zestaw Style wyglądają szczególnie ładnie, gdy rysunki są gradientami przy użyciu pewnego zestawu spójnych wartości kolorów (np. lawenda do purpury dla wybranych i fioletowych do lawendy dla niezaznaczonych, zmiana wartości na ciemniejsze dla przyciśniętych i jaśniejsze dla skupienia).

0

Dodaj poniżej kod w pliku aktywności

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