更改ActionBarSherlock背景颜色
我试图实现ActionBarSherlock,因为我被告知这是相对容易实现和定制。 我发现它很容易实现,但我试图改变ActionBar的背景颜色,这是困难的。
根据网站( 链接 ),似乎你可以inheritance其中一个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>
我注意到内置的主题是使用图像的背景,但我祈祷,我不必创build图像来改变背景颜色。
谢谢。
操作栏背景颜色在操作栏的样式中定义,而不是在主题本身中定义。 你需要做这样的事情:
<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之前的视图边界,所以如果你使用带有单独背景的Tab键导航,那么你将会遇到问题。
我刚刚用过
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00853c")));
它改变了背景颜色。 希望能帮助到你。
杰克·沃顿提到的代码是真实的。 但是,如果将minSDK <11应用于styles.xml,则代码可能无法正常工作,因为API-11中支持android:actionBarStyle +
要解决这个错误:
在您的res文件夹中创build一个值为-11的文件夹,并如上所述创buildXML文件。