Изменение цвета фона вкладки ActionBar
Есть ли способ изменить цвет фона на панели вкладок в ActionBar без изменения его в одной строке?
Чтобы уточнить, что я хочу: в портретном режиме ActionBar разделен на две строки: сам ActionBar и вкладки ниже. В ландшафтном режиме вкладки находятся в фактическом ActionBar.
Я хочу изменить цвет фона в портретном режиме. Если я изменил фон в TabView, он будет изменен для обоих режимов. Должен ли я создавать для них отдельные стили? Что вызывает второй вопрос: есть ли способ узнать, когда это будет две строки, а когда нет?
Или я просто что-то пропустил?
Я использую ActionBarSherlock btw
Ответы
Ответ 1
Я думаю, что вы ищете атрибут 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>
Ответ 2
Чтобы изменить цвет вкладки панели действий, Pls использует этот код:
//Например, если вы хотите использовать белый цвет в качестве фона вкладки, то
getActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFFFFF")));
Ответ 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>
Надеюсь, это поможет вам.
Ответ 4
ColorDrawable colorDrawable = new ColorDrawable(Color.White);
actionBar.SetStackedBackgroundDrawable(colorDrawable);
для людей xamarin.
Ответ 5
Чтобы отделить стили в зависимости от ориентации, вы должны создать в своей папке /res
новую папку под названием layout-land
(для пейзажного режима) и layout-port
(в портретном режиме) и поместить ваши файлы xml для панели действий и установить это особый стиль (с желаемым цветом) в каждой папке.