5

我正在使用 ActionBarSherlock。我的 style.xml 文件中有 displayOption“homeAsUp”。现在这会在 Activity 的标题旁边显示一个黑色箭头。由于我的主题是蓝色黑底上​​的白色,我想更改黑色箭头的颜色,或者使用全新的图标资源代替它。我怎样才能做到这一点 ?

亲切的问候。

4

2 回答 2

15

除了埃里克的回答 - 我浪费了很多时间来解决这个问题。

请记住,这些项目必须放在父应用程序主题中,继承自Theme.Sherlock或类似。

<!-- CUSTOM APP THEME -->
<style name="AppTheme" parent="Theme.Sherlock">
    <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
    <item name="actionBarStyle">@style/AppTheme.ActionBarStyle</item>
    <item name="android:homeAsUpIndicator">@drawable/action_bar_ic_ab_back_holo_dark</item>
    <item name="homeAsUpIndicator">@drawable/action_bar_ic_ab_back_holo_dark</item>
</style>

不要将它们放在继承自Widget.Sherlock.ActionBar.

<!-- ACTION BAR THEME -->
<style name="AppTheme.ActionBarStyle" parent="Widget.Sherlock.ActionBar">
    <item name="android:icon">@drawable/action_bar_logo</item>
    <item name="icon">@drawable/action_bar_logo</item>
    <item name="android:displayOptions">showHome</item>
    <item name="displayOptions">showHome</item>
</style>
于 2012-11-22T08:00:28.003 回答
2

设计 ActionBarSherlock 时要小心!

这是网站的摘录(ActionBarSherlock Theming):

由于 Android 主题系统的限制,任何主题自定义都必须在两个属性中声明。普通的 android-prefixed 属性将主题应用于本机操作栏,unprefixed 属性用于自定义实现。由于两个主题 API 完全相同,您只需引用您的自定义两次,而不必实施两次。

因此,在您的情况下,您必须定义两个项目:

<item name="android:homeAsUpIndicator">@drawable/icon</item>

<item name="homeAsUpIndicator">@drawable/icon</item>

那么您确定您的所有用户都将拥有相同的 L&F

于 2012-09-01T22:41:11.883 回答