Изменение цвета фона 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>
Я замечаю, что встроенная тема использует образы для фона, но я молюсь, чтобы мне не нужно создавать изображения для изменения цвета фона.
Спасибо.
Ответы
Ответ 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, как указано выше.