更改ActionBar选项卡背景颜色

时间:2012-07-03 20:33:05

标签: android android-actionbar android-ui

有没有办法在ActionBar中更改标签栏的背景颜色而不在一行版本中更改它?

澄清我想要的东西:在纵向模式下,ActionBar分为两行,ActionBar本身和下面的标签。在横向模式下,选项卡位于实际的ActionBar中。

我想更改纵向模式的背景颜色。如果我在TabView中更改背景,它将针对两种模式进行更改。我必须为那些创建单独的样式吗?这提出了第二个问题:有没有办法知道什么时候它会是两条线,何时不是?

或者我错过了什么?

我正在使用ActionBarSherlock btw

5 个答案:

答案 0 :(得分:43)

我认为您正在寻找ActionBar样式的android:backgroundStacked属性:

<style name="MyTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
    <item name="android:backgroundStacked">@drawable/my_stacked_background</item>
</style>

或(如果使用ActionBarSherlock):

<style name="MyTheme" parent="@style/Theme.Sherlock.Light">
    <item name="android:actionBarStyle">@style/MyActionBarStyle</item>
    <item name="actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
    <item name="android:backgroundStacked">@drawable/my_stacked_background</item>
    <item name="backgroundStacked">@drawable/my_stacked_background</item>
</style>

答案 1 :(得分:24)

若要更改操作栏选项卡的颜色,请使用以下代码:

//例如,如果您想将白色作为标签背景,那么

getActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));

答案 2 :(得分:3)

在ActionBarSherlock的values/abs__themes.xml中有

<item name="actionModeSplitBackground">@drawable/abs__cab_background_bottom_holo_dark</item>

您必须创建自己的主题源自ABS

<style name="AppTheme" parent="Theme.Sherlock">
    <item name="actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="actionModeSplitBackground">@drawable/my_split_background</item>
</style>

希望这会对你有所帮助。

答案 3 :(得分:1)

ColorDrawable colorDrawable = new ColorDrawable(Color.White);
actionBar.SetStackedBackgroundDrawable(colorDrawable);

对于xamarin人。

答案 4 :(得分:0)

要根据您必须在/res文件夹中创建一个名为layout-land的新文件夹(用于横向模式)和layout-port(在纵向模式下)创建的方向分隔样式,并放置您的xml操作栏的文件,并在每个文件夹上设置它的特定样式(使用您想要的颜色)。