Изменение цвета субтитров на панели действий Android
Я хочу настроить actionBar моего приложения для Android.
Я использую Actionbar Sherlock.
Моя мишень target sdk равна 14, target sdk 17.
У меня есть тема, которая изменяет цвет фона и основной текст заголовка
однако я не могу изменить цвет текста субтитров
мой стиль показан здесь
<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>
что сделано неправильно?
Ответы
Ответ 1
Просто измените titleTextStyle
на 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>
Ответ 2
Этот набор стилей форматирует панель действий, включая фон, заголовок и текст субтитров; он также форматирует вкладки, включая все состояния (выбранные, невыбранные и все сфокусированные/сжатые комбинации), а также шрифт и размер текста вкладки (для каждой инструкции разработчика Android 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>
Этот набор стилей выглядит особенно приятным, когда чертежи являются градиентами с использованием некоторого набора когерентных значений цвета (например, лаванда для фиолетового для выбранного и фиолетового для лаванды для невыбранного, изменение значений до более темных для нажатых и более легких для сфокусированных).
Ответ 3
Почти там. Вот код:
<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>
Ответ 4
Я закончил с этим (Его ближе к тому, что мне нужно)
@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>
код >
Ответ 5
Добавьте в свой файл действий код ниже
actionBar.setSubtitle(Html.fromHtml("<font color='#FFBF00'>Here ActionBar Subtitle</font>"));