6

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

我一直在阅读SO 和 ABS 文档(链接)上的一些主题(主题 1主题 2 ) ,但我无法让它工作。

这就是我到目前为止所拥有的。

在我的 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 的样式,请阅读此内容!

我在这里找到了一个答案,给出了以下链接:http: //jgilfelt.github.com/android-actionbarstylegenerator

这是一个简单的生成器,可以为完全定制的 ABS 生成所有需要的文件!您所要做的就是将生成的文件复制到相应的文件夹中,然后就可以了!

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

4

2 回答 2

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"/>

旁注,我推荐这个优秀的动作栏主题生成器

于 2012-08-06T09:11:45.943 回答
1

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

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

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

于 2012-08-06T09:01:37.127 回答