6

我使用ActionBarSherlock使我的应用程序与旧设备兼容。实现很简单,但现在我需要将在标签下看到的默认Holo蓝线设置为红线。更改标签中的线条颜色 - ActionBarSherlock

我一直在阅读几个主题(topic 1topic 2)在这里SO和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中启用样式(您必须在生成器中输入样式名称)。为此,请参阅下面的答案。

回答

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

+0

如何使用它它不会降级? – PankajAndroid 2013-08-01 07:23:06

1

集清单档案中的主题如下:

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

它会保留所有的福尔摩斯主题,将增加您的自定义样式。