我正在使用ActionBarSherlock使我的应用与旧设备兼容。实现很简单,但现在我需要将您在标签下看到的默认Holo蓝线设置为红线。
我一直在SO上阅读一些主题(topic 1,topic 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中启用样式(您必须在生成器中输入样式名称)。为此,请参阅下面的答案。
答案 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"/>
答案 1 :(得分:1)
在清单文件主题中设置如下:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.MyTheme" >
它将保留所有Sherlock主题,并将添加您的自定义样式。