我使用此代码更改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>
正如Jake Warton所建议的那样:
Change ActionBarSherlock background color
但问题是ActionBar和Tabs都改为蓝色颜色。我实际上想要将顶部actionBar背景更改为蓝色并将标签背景更改为白色
怎么做?
谢谢
答案 0 :(得分:6)
使用ActionbarStyleGenerator更改所需内容的颜色。这是迄今为止最简单,最直观的方式。
如何:
答案 1 :(得分:2)
有两种方法可以更改标签栏的背景:
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>