4

我想通过将以下样式应用于我的活动来更改向上图标,但它不起作用,但我仍然得到默认的黑色“<”图标。

谁能找出这里缺少的东西?

<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>
4

1 回答 1

21

如果我没记错的话,我通过将and元素移动到主题声明中来解决这个问题。换句话说,尝试:android:homeAsUpIndicatorhomeAsUpIndicator

<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(或任何其他小部件样式)作为父级。如果这是你的主题,我会相应地命名它。当然取决于你。


编辑:杰克发表评论后更新了答案。

于 2012-10-31T23:27:47.167 回答