13

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

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

我想更改纵向模式的背景颜色。如果我更改 TabView 中的背景,两种模式都会更改。我是否必须为这些创建单独的样式?这就引出了第二个问题:有没有办法知道什么时候是两条线,什么时候不是?

还是我只是错过了什么?

我正在使用 ActionBarSherlock 顺便说一句

4

5 回答 5

45

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

<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>
于 2013-04-08T08:49:43.120 回答
23

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

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

getActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));
于 2014-12-17T07:54:37.453 回答
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>

希望这对您有所帮助。

于 2012-07-03T20:39:58.140 回答
1
ColorDrawable colorDrawable = new ColorDrawable(Color.White);
actionBar.SetStackedBackgroundDrawable(colorDrawable);

对于 xamarin 人。

于 2015-07-01T20:08:59.293 回答
0

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

于 2012-07-03T20:50:36.560 回答