ActionBarSherlock - 更改ActionBar线条颜色

6

我目前正在使用actionbarsherlock使我的应用程序与早期版本的设备兼容。我的应用程序具有自定义主题,覆盖了Holo.light将蓝色更改为橙色。

我想要将出现在操作栏下方的蓝线更改为橙色。使用官方的操作栏,我通过覆盖某些标签来实现这一点

    <item name="android:background">@drawable/ad_tab_unselected_holo</item>

很不幸,这在actionbarsherlock 4中似乎无法工作。

1个回答

5
你需要做两件事情:
ABS 4现在模拟标准的Action Bar,并具有类似的属性。因此,你需要添加 -
<item name="background">@drawable/ad_tab_unselected_holo</item>

请注意android:的缺失。
因此,您的整体代码应为:
<item name="android:background">@drawable/ad_tab_unselected_holo</item>
<item name="background">@drawable/ad_tab_unselected_holo</item>

引用如下:
由于Android的主题系统的限制,任何主题自定义都必须在两个属性中声明。普通的以android为前缀的属性将主题应用于原生操作栏,而没有前缀的属性则用于自定义实现。由于两个主题API完全相同,您只需要引用自定义两次即可,而不必实现两次。
我还会扩展Theme.Sherlock的变体,而不是使用holo,因为我认为holo在早期版本的设备上不可用(即3.0之前的版本)。

1
是的,您需要扩展Theme.Sherlock或ABS 4提供的另一个主题。 - Jon Willis
另外,在我的研究中,我发现为了使样式在所有版本的Android上保持一致,我需要同时使用android:background和background。也许我完全错了或者这种情况已经改变了。 - Jon Willis
请注意,我说的是“添加”而不是替换,因此两种变体都将存在。 - Graham Smith
我被“注意android的缺席:”所困扰:那是在你在background上方加入android:background行之前。 - Jon Willis
根据你的说法,我觉得我应该把一些混乱消除并且表达我的观点更清晰 :) - Graham Smith
谢谢,不知道我怎么会错过那个。我已经用这种方式设置了其他方面,但是简单地忽略了这个! 我认为Theme.holo的目的是将holo带回到3.0之前的设备上?它在运行2.3的设备上成功工作 :) - bencallis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接