我正在使用 ActionBarSherlock。我的 style.xml 文件中有 displayOption“homeAsUp”。现在这会在 Activity 的标题旁边显示一个黑色箭头。由于我的主题是蓝色黑底上的白色,我想更改黑色箭头的颜色,或者使用全新的图标资源代替它。我怎样才能做到这一点 ?
亲切的问候。
我正在使用 ActionBarSherlock。我的 style.xml 文件中有 displayOption“homeAsUp”。现在这会在 Activity 的标题旁边显示一个黑色箭头。由于我的主题是蓝色黑底上的白色,我想更改黑色箭头的颜色,或者使用全新的图标资源代替它。我怎样才能做到这一点 ?
亲切的问候。
除了埃里克的回答 - 我浪费了很多时间来解决这个问题。
请记住,这些项目必须放在父应用程序主题中,继承自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>
设计 ActionBarSherlock 时要小心!
这是网站的摘录(ActionBarSherlock Theming):
由于 Android 主题系统的限制,任何主题自定义都必须在两个属性中声明。普通的 android-prefixed 属性将主题应用于本机操作栏,unprefixed 属性用于自定义实现。由于两个主题 API 完全相同,您只需引用您的自定义两次,而不必实施两次。
因此,在您的情况下,您必须定义两个项目:
<item name="android:homeAsUpIndicator">@drawable/icon</item>
和
<item name="homeAsUpIndicator">@drawable/icon</item>
那么您确定您的所有用户都将拥有相同的 L&F