it-swarm.com.ru

Изменить Android Цвет субтитров панели действий

Я хочу настроить панель действий моего приложения Android.
Я использую Actionbar Sherlock.
Моя минимальная цель SDK 14, цель 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>


что сделали не так?

15
Hector

Просто измените 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>
21
Androiderson

Этот набор стилей форматирует панель действий, включая фон, текст заголовка и субтитров; он также форматирует вкладки, включая все состояния (выбранные, невыбранные и все выделенные/нажатые комбинации), а также шрифт и размер текста вкладки (согласно 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
Epsilon3

Почти готово. Вот код:

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

Добавьте ниже код в вашем файле деятельности

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

пример добавить

<Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            Android:background="@color/colorPrimary"
            app:titleTextColor="@color/white"
            app:subtitleTextColor="@color/white"
            Android:gravity="center"
            >

subtitleColor

        app:subtitleTextColor="@color/white"
0
Devix

Я закончил с этим (это ближе к тому, что мне нужно)

@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>
 </ код>


0
Hector