Подтвердить что ты не робот

Изменение цвета фона ActionBarSherlock

Я пытаюсь реализовать ActionBarSherlock, потому что мне сказали, что его относительно легко реализовать и настроить. Я нашел, что это было довольно легко реализовать, но я пытаюсь изменить цвет фона ActionBar, и это сложно.

Согласно сайту (ссылка), кажется, что вы можете наследовать одну из тем ActionBarSherlock, а затем переопределить необходимые вам свойства.

Это то, что у меня есть до сих пор:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="Theme.ActionBar" parent="Theme.Sherlock.ForceOverflow">
      <item name="android:background">#000000</item>
      <item name="background">#000000</item>
    </style>
</resources>

Я замечаю, что встроенная тема использует образы для фона, но я молюсь, чтобы мне не нужно создавать изображения для изменения цвета фона.

Спасибо.

4b9b3361

Ответ 1

Цвет фона панели действий определен в стиле панели действий, а не в самой теме. Вам нужно будет сделать что-то вроде этого:

<style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
    <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
</style>

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">#ff000000</item>
    <item name="background">#ff000000</item>
</style>

Будьте осторожны с использованием цветов, определенных в XML. ColorDrawable не уважал его рамки просмотра на пре-Honeycomb, поэтому, если вы используете навигацию на вкладке с отдельным фоном для просмотра сложенными вкладками, у вас будут проблемы.

Ответ 2

Я просто использовал

getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00853c")));

Он изменил цвет фона. Надеюсь, поможет.

Ответ 3

Код, упомянутый Джейком Уортоном, верен. Но при применении кода к styles.xml может не работать, если у вас есть minSDK < 11, поскольку android: actionBarStyle поддерживается в API-11 +

Чтобы решить эту ошибку:

Сделайте папку значений-v11 в папке res и создайте файл XML, как указано выше.