ActionbarSherlock和homeAsUpIndicator

时间:2013-08-06 10:06:17

标签: android actionbarsherlock

我有自定义后退箭头的问题。我想要一个红色箭头而不是默认箭头。我已经阅读了很多关于此的主题,但它不起作用。

所以我将我的样式放在res / values / styles.xml中。这是我的代码:

<style name="AppBaseTheme" parent="Theme.Sherlock.Light">

    <item name="actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
    <item name="homeAsUpIndicator">@drawable/btn_nav_retour</item>

</style>

我无法设置“android:homeAsUpIndicator”因为它需要api等级11而我的min sdk是9。

我应该在res / values-v11 / styles.xml中设置相同的代码吗?

THX

2 个答案:

答案 0 :(得分:3)

要在所有API中使用,您应该在style.xmlvalues-v11文件夹中创建values-v14。例如,在values-v14中您应该使用:

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
    <item name="android:homeAsUpIndicator">@drawable/btn_nav_retour</item>
</style>

在默认的values文件夹中,您应该使用ActionBarSherlock提供的属性,但是对于更高的API级别,您应该坚持使用Android默认ActionBar属性并将android:放在前面他们。通过这种方式,它可以用于更高的API级别。

答案 1 :(得分:0)

作为接受答案的旁注: 如果您不想为两个API范围复制主题,可以在values / styles.xml中将这两个项目添加到AppBaseTheme中:

<style name="AppBaseTheme" parent="Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/Widget.AppTheme.ActionBar</item>
    <item name="homeAsUpIndicator">@drawable/btn_nav_retour</item>
    <item name="android:homeAsUpIndicator" tools:targetApi="11">@drawable/btn_nav_retour</item>
</style>

targetApi-attribute可防止来自lint的错误消息。旧的Android版本会忽略它注释的xml项目。