如何更改动作条sherlock的文本颜色

时间:2012-12-28 10:57:26

标签: android actionbarsherlock

我知道在这件事上已经发布了很少的问题。我过滤了几乎所有帖子,但没有运气,我没有得到我必须得到的结果。首先,我尝试了代码段#1 ,一切正常,就像在image1中一样。但是现在我必须将动作栏背景更改为浅色和暗淡颜色,因此,结果是活动的标题和项目的标题是白色的,几乎看不清楚。因此,决定更改文本颜色,但没有得到如何使用styles.xml中的当前代码更改它。如果有人可以帮助我使用现有的代码(代码段#1)本身更改文字颜色,那将非常棒。由于我没有得到如何修改现有代码,因此我关注了this,所以现在我的代码是代码段#2 ,现在我的操作栏完全变得奇怪了制作主页图标和应用标题消失,仅显示与图片2 相对的项目。有人可以帮我解决这个问题吗?

代码段#1

<style name="MyTheme" parent="Theme.Sherlock">
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:windowBackground">@color/white</item>
</style>

<style name="MyActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="background">@drawable/action_bar_background</item>
    <item name="android:background">@drawable/action_bar_background</item>
</style>

代码段<2

<style name="MyTheme" parent="Theme.Sherlock.Light">
        <item name="actionBarStyle">@style/CustomActionBar</item>
    </style>

    <style name="CustomActionBar" parent="android:style/Widget.Holo.Light.ActionBar">
         <item name="android:background">@drawable/action_bar_background</item>
         <item name="titleTextStyle">@style/ActionBarTitle</item>
    </style>

    <style name="ActionBarTitle" parent="@android:style/TextAppearance.Medium">
        <item name="android:textColor">#000000</item>
    </style>

以下是我的图片:

enter image description here

enter image description here

在第二张图像中,标题,图标和蓝色边框线消失。我必须展示它们,因为我将home设置为true。

3 个答案:

答案 0 :(得分:28)

这是最适合自定义ActionBar的方法:

http://jgilfelt.github.com/android-actionbarstylegenerator/

也很容易。

如果您只想更改某些文字颜色/尺寸,请尝试以下操作:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="YOURTHEME" parent="Theme.Sherlock.Light">
        <item name="android:actionBarStyle">@style/YOURTHEME.ActionBarStyle</item>
        <item name="actionBarStyle">@style/YOURTHEME.ActionBarStyle</item>
    </style>

    <style name="YOURTHEME.ActionBarStyle" parent="Widget.Sherlock.Light.ActionBar">
        <item name="android:titleTextStyle">@style/YOURTHEME.ActionBar.TitleTextStyle</item>
        <item name="titleTextStyle">@style/YOURTHEME.ActionBar.TitleTextStyle</item>
    </style>

    <style name="YOURTHEME.ActionBar.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Title">
        <item name="android:textColor">@color/YOUR_COLOR</item>
        <item name="textColor">@color/YOUR_COLOR</item>
        <item name="android:textSize">@dimension/MEDIUM_TEXT</item>
        <item name="textSize">@dimension/MEDIUM_TEXT</item>
    </style>
</resources>

答案 1 :(得分:2)

我使用了Archie.bpgc上面的链接并创建了一个使用Light - Dark Action Bar的样式,它通过允许我选择我需要的颜色来解决我的问题。

以上示例对我来说无法更改文本颜色。

链接:http://jgilfelt.github.com/android-actionbarstylegenerator/

答案 2 :(得分:0)

我认为您正在尝试更改菜单上的文字颜色,而不是 ActionBarSherlock中标题中的文字颜色

当您使用&#34; getSupportActionBar()时。 SetTitle(&#34;我的标题&#34;)&#34;要设置此文本的样式,您应该使用 @ Archie.bpgc 的代码。他的回答是正确的,但是由于经历了同样的问题,我相信你需要的是以下代码:

<style name="MyTheme.TitleTextStyle" parent="TextAppearance.Sherlock.Widget.ActionBar.Menu">
    <item name="android:textColor">@color/white</item>
    <item name="android:textSize">24sp</item>
    <item name="android:gravity">center</item>
</style>

看到你只是交换 parent =&#34; parent =&#34; TextAppearance.Sherlock.Widget.ActionBar。菜单强>&#34; &GT;