更改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文件。