我想通过将以下样式应用到我的活动来更改向上图标,但它不起作用,但我仍然得到默认的黑色'<'图标。
有谁能找到这里缺少的东西?
<style name="AppTheme.ActionBar" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/actionBarStyle</item>
<item name="android:actionBarStyle">@style/actionBarStyle</item>
</style>
<style name="actionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:background">@drawable/header_bar</item>
<item name="background">@drawable/header_bar</item>
<item name="android:homeAsUpIndicator">@drawable/up_indicator</item>
<item name="homeAsUpIndicator">@drawable/up_indicator</item>
<item name="android:displayOptions">homeAsUp|showHome</item>
<item name="displayOptions">homeAsUp|showHome</item>
</style>
答案 0 :(得分:20)
如果我没记错的话,我通过移动来解决这个问题你应该将android:homeAsUpIndicator
和homeAsUpIndicator
元素移到主题宣言中。换句话说,尝试:
<style name="AppTheme.ActionBar" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/actionBarStyle</item>
<item name="android:actionBarStyle">@style/actionBarStyle</item>
<item name="android:homeAsUpIndicator">@drawable/up_indicator</item>
<item name="homeAsUpIndicator">@drawable/up_indicator</item>
</style>
<style name="actionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:background">@drawable/header_bar</item>
<item name="background">@drawable/header_bar</item>
<item name="android:displayOptions">homeAsUp|showHome</item>
<item name="displayOptions">homeAsUp|showHome</item>
</style>
不确定我是否也必须向上移动 displayOptions
,但你也可以在上面的情况下放弃它,不会马上工作。
顺便说一下,我发现命名一个样式AppTheme.ActionBar
,然后继承Theme.Sherlock.Light
而非常混乱。如果它是ActionBar特定的样式,我会期望像Widget.Holo.Light.ActionBar
(或任何其他小部件样式)那样的父级。如果它是您的主题,我会相应地命名。当然由你决定。
修改:在杰克的评论之后更新了答案。