仅ActionBarSherlock的更改背景。 没有标签(Change background

2019-08-02 09:49发布

我用这个代码来改变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背景颜色

但事实是动作条和标签都更改为蓝色 。 其实我是想改变世界的顶级动作条的背景为蓝色标签背景白

这该怎么做?

谢谢

Answer 1:

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

如何:

  1. 使用UI来选择不同的项目颜色。
  2. 做一次点击下载.ZIP
  3. ZIP将包含您需要在您的项目RES /布局和RES / drawableXXXX文件夹复制所需文件夹下的资源文件


Answer 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>


文章来源: Change background of the ActionBarSherlock alone. Not the Tabs