安卓操作系统中ActionBar的文字颜色是什么?

8

I have xml like this:

<resources>

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
</style>

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:titleTextStyle">@style/TitleColor</item>
</style>

<style name="MyActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
    <item name="android:background">#800000</item>
</style>

<style name="TitleColor" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textColor">#000099</item>
</style>
</resources>

背景颜色已正确设置,但标题颜色未更改。我哪里出错了? 谢谢!

我相信这个SO链接会对你有所帮助 - https://dev59.com/mnLYa4cB1Zd3GeqPZZXT - jshbrmn
4个回答

21

将其更改为:

<resources>

    <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    </style>

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
    </style>

    <style name="MyActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
        <item name="android:background">#800000</item>
        <item name="android:titleTextStyle">@style/TitleColor</item>
    </style>

    <style name="TitleColor" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">#000099</item>
    </style>
</resources>

1
谢谢,它起作用了!你能解释一下为什么它需要在那个样式标签里吗?我想知道原因,否则我就什么也没学到。 - Bade
没问题。问题是,你在基本主题中覆盖了titleTextStyle,但它应该被你的操作栏主题覆盖。 - Ahmad
所以 titleTextStyle 属于 actionBar "组" 吗?我以为它包括整个应用程序。 - Bade
不,这是与ActionBar特定相关的内容。 - Ahmad

2
您可以通过以下方式进行编程式更改:
ActionBar actionbar = getSupportedActiobar();
actionBar.setTitle(Html.fromHtml("<font color='#ff0000'>ActionBarTitle </font>"));

我不知道这是因为更新的原因,但我必须使用getActionBar()来访问它。 - RonnyKnoxville

1
我正在使用这个。
<resources>

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarStyle">@style/myTheme.ActionBar</item>
    <item name="actionMenuTextColor">@color/action_text_color</item>
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme"></style>

<style name="myTheme.ActionBar" parent="@style/Widget.AppCompat.ActionBar">
    <item name="titleTextStyle">@style/myTheme.ActionBar.Text</item>
    <item name="background">@drawable/abc_tab_indicator_ab_holo</item>
    <item name="backgroundStacked">@drawable/abc_ab_transparent_dark_holo</item>
    <item name="backgroundSplit">@drawable/abc_ab_bottom_transparent_light_holo</item>
</style>

<style name="myTheme.ActionBar.Text" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/action_text_color</item>
</style>


0

这是对我有效的方法...

<style name="MyActionBar"
    parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/titleBarBgColor</item>
    <item name="android:titleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item>
    <item name="android:subtitleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item>
    <!-- Support library compatibility -->
    <item name="background">@color/titleBarBgColor</item>
    <item name="titleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item>
    <item name="subtitleTextStyle">@style/EldTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="EldTheme.ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/titleBarTextColor</item>
</style>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接