我用这个代码来改变ActionBarSherlock的颜色:
<style name="Theme.MyTheme" parent="Theme.Sherlock.Light.DarkActionBar">
<!-- set style for action bar (affects tab bar too) -->
<item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<!-- define text style for tabs -->
<item name="actionBarTabTextStyle">@style/MyTheme.ActionBar.TabText</item>
<item name="android:actionBarTabTextStyle">@style/MyTheme.ActionBar.TabText</item>
</style>
<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
<!-- define background for action bar (sets default for all parts of action bar - main, stacked, split) -->
<item name="android:background">#blue</item>
<item name="background">#blue</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyleWhite</item>
<item name="titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyleWhite</item>
<!-- set background for the tab bar (stacked action bar) - it overrides the background property -->
<item name="android:backgroundStacked">#grey</item>
<item name="backgroundStacked">#grey</item>
</style>
<style name="MyTheme.ActionBar.TabText" parent="Widget.Sherlock.ActionBar.TabText">
<item name="android:textColor">#black</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyleWhite" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#white</item>
</style>
由杰克沃顿这里建议:
更改ActionBarSherlock背景颜色
但事实是动作条和标签都更改为蓝色 。 其实我是想改变世界的顶级动作条的背景为蓝色 , 标签背景白
这该怎么做?
谢谢
使用ActionbarStyleGenerator改变所有你所需要的颜色。 这是迄今为止最简单,最直观的方式。
如何:
- 使用UI来选择不同的项目颜色。
- 做一次点击下载.ZIP
- ZIP将包含您需要在您的项目RES /布局和RES / drawableXXXX文件夹复制所需文件夹下的资源文件
有两种方法如何更改标签栏的背景:
1)如果仅在纵向使用的标签,您可以设置backgroundStacked
(和android:backgroundStacked
)的项目(android:)actionBarStyle
。 它为堆叠操作栏(标签栏)的背景。
你的主题必须包含:
<style name="Theme.MyTheme" parent="Theme.Sherlock.Light.DarkActionBar">
<!-- set style for action bar (affects tab bar too) -->
<item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
</style>
该ActionBarStyle
则必须是:
<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
<!-- define background for action bar (sets default for all parts of action bar - main, stacked, split) -->
<item name="android:background">#ff0000ff</item>
<item name="background">#ff0000ff</item>
<!-- set background for the tab bar (stacked action bar) - it overrides the background property -->
<item name="android:backgroundStacked">#ffff</item>
<item name="backgroundStacked">#ffff</item>
</style>
这就是你必须做的。 但这种解决方案将不会在景观工作。 在景观的选项卡可以移动到主操作栏。
2)如果您使用在纵向和横向的标签,不同的解决方案已被使用。
主题必须包含:
<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
<!-- set style for action bar -->
<item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
<!-- set the tab bar style -->
<item name="actionBarTabBarStyle">@style/Widget.MyTheme.TabBar</item>
<item name="android:actionBarTabBarStyle">@style/Widget.MyTheme.TabBar</item>
</style>
并设置标签栏风格背景:
<style name="Widget.MyTheme.TabBar" parent="Widget.Sherlock.ActionBar.TabBar">
<item name="android:background">#ffff</item>
</style>
注意 :如果您尝试这两种方法结合起来,然后从后台actionBarTabBarStyle
将被放置在从背景backgroundStacked
。
注意 :这两种方法决定了整个标签栏背景,设置背景为标签栏的单一标签是不同的。
标签文字颜色
如果你要设置的文字颜色的标签,你必须定义actionBarTabTextStyle
。
主题必须包含:
<style name="Theme.MyTheme" parent="Theme.Sherlock.Light.DarkActionBar">
...
<!-- define text style for tabs -->
<item name="actionBarTabTextStyle">@style/MyTheme.ActionBar.TabText</item>
<item name="android:actionBarTabTextStyle">@style/MyTheme.ActionBar.TabText</item>
</style>
标签文本风格则是:
<style name="MyTheme.ActionBar.TabText" parent="Widget.Sherlock.ActionBar.TabText" >
<item name="android:textColor">#FF000000</item>
</style>
文章来源: Change background of the ActionBarSherlock alone. Not the Tabs