更改选项卡中的线条颜色 - ActionBarSherlock

时间:2012-08-06 08:10:26

标签: android android-actionbar actionbarsherlock android-tabs

我正在使用ActionBarSherlock使我的应用与旧设备兼容。实现很简单,但现在我需要将您在标签下看到的默认Holo蓝线设置为红线。

我一直在SO上阅读一些主题(topic 1topic 2)以及ABS文档(link),但我无法让它发挥作用。

这是我到目前为止所做的。

在我的AndroidManifest.xml中,我将此行添加到application标记。

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.Sherlock" > <!-- SET THE DEFAULT THEME -->

然后在res/values/styles.xml我有:

<resources>
    <style name="AppTheme" parent="android:Theme.Light" />

    <style name="Theme.MyTheme" parent="Theme.Sherlock">
        <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
        <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    </style>

    <style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
        <item name="android:background">#ff000000</item>
        <item name="background">#ff000000</item>
    </style>
</resources>

但是当我运行我的应用程序时,我仍然会看到默认的蓝线颜色。

我做错了什么?


修改

如果您想完全设置ActionBarSherlock样式,请阅读此内容!

我在SO上找到了一个答案,它提供了以下链接: http://jgilfelt.github.com/android-actionbarstylegenerator

这是一个简单的发电机,可为完全定制的ABS生成所有需要的文件!您所要做的就是将生成的文件复制到适当的文件夹中,然后进行设置!

不要忘记在AndroidManifest中启用样式(您必须在生成器中输入样式名称)。为此,请参阅下面的答案。

2 个答案:

答案 0 :(得分:8)

一些事情:

您不再需要<style name="AppTheme" parent="android:Theme.Light" />,除非您想要将其更改为继承Theme.Sherlock并将其用于您的应用主题。如果您决定这样做,则必须使用Theme.MyTheme进行活动。

无论哪种方式,解决您想要更改的问题

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.Sherlock" >

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.MyTheme" >

或者您可以将主题直接应用于您的活动:

 <activity 
    android:name="com.awesome.package.activity.SomeActivity"
    android:theme="@style/Theme.MyTheme"/>

旁注,我推荐这个excellent actionbar theme generator

答案 1 :(得分:1)

在清单文件主题中设置如下:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.MyTheme" >

它将保留所有Sherlock主题,并将添加您的自定义样式。