2

我使用此代码更改 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 背景颜色

但问题是 ActionBar 和 Tabs 都变成了蓝色。我实际上想将顶部 actionBar 背景更改为蓝色将选项卡背景更改为白色

这个怎么做?

谢谢你

4

2 回答 2

6

使用ActionbarStyleGenerator来改变你所需要的颜色。这是迄今为止最简单、最直观的方式。

如何:

  1. 使用 UI 为不同的项目选择颜色。
  2. 完成后点击下载.zip
  3. ZIP 将包含所需文件夹下的资源文件,您需要将其复制到项目 res/layout 和 res/drawableXXXX 文件夹中
于 2012-11-08T05:51:15.563 回答
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>

注意:如果您尝试结合这两种方法,则背景 fromactionBarTabBarStyle将被放置在背景 frombackgroundStacked上。

注意:这两种方法为整个标签栏设置背景,为标签栏中的单个标签设置背景是不同的。

选项卡文本颜色

如果要为必须定义的选项卡设置文本颜色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>
于 2012-11-07T13:22:15.270 回答