it-swarm.com.ru

Изменить цвет фона вкладок ActionBar

Есть ли способ изменить цвет фона панели вкладок в панели действий, не меняя его в однострочной версии?

Чтобы прояснить, что я хочу: В портретном режиме панель действий разбита на две строки, сама панель действий и вкладки ниже. В ландшафтном режиме вкладки находятся в реальном ActionBar.

Я хочу изменить цвет фона в портретном режиме. Если я изменю фон в TabView, он будет изменен для обоих режимов. Нужно ли создавать отдельные стили для них? Что поднимает второй вопрос: есть ли способ узнать, когда будет две строки, а когда нет?

Или я просто что-то упустил?

Я использую ActionBarSherlock кстати

12
Maria Neumayer

Я думаю, что вы ищете атрибут Android:backgroundStacked стиля ActionBar:

<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>
43
JesperB

Чтобы изменить цвет вкладки Actionbar, используйте следующий код:

// Например, если вы хотите белый цвет в качестве фона вкладок, то

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

В 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
vasart
ColorDrawable colorDrawable = new ColorDrawable(Color.White);
actionBar.SetStackedBackgroundDrawable(colorDrawable);

для ксамаринов.

1
megaKertz

Чтобы разделить стили в зависимости от ориентации, вы должны создать в своей папке /res новую папку с именами layout-land (для ландшафтного режима) и layout-port (в портретном режиме) и поместить свои XML-файлы для панели действий и установить для нее определенный стиль (нужного цвета). ) в каждой папке.

0
Mouna Cheikhna