【发布时间】:2012-07-27 06:20:31
【问题描述】:
我正在使用 ActionBarSherlock。我的 style.xml 文件中有 displayOption“homeAsUp”。现在这会在 Activity 的标题旁边显示一个黑色箭头。由于我的主题是蓝色黑底上的白色,我想更改黑色箭头的颜色,或者使用全新的图标资源代替它。我该怎么做?
亲切的问候。
【问题讨论】:
-
- @drawable/icon
将此添加到主题部分。用作魅力。
我正在使用 ActionBarSherlock。我的 style.xml 文件中有 displayOption“homeAsUp”。现在这会在 Activity 的标题旁边显示一个黑色箭头。由于我的主题是蓝色黑底上的白色,我想更改黑色箭头的颜色,或者使用全新的图标资源代替它。我该怎么做?
亲切的问候。
【问题讨论】:
进一步了解 Eric 的回答 - 我浪费了很多时间来解决这个问题。
请记住,这些项目必须放在父应用程序主题中,继承自 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
【讨论】: