2013-08-06 42 views
1

我有问题来自定义后退箭头。我想要一个红色的箭头而不是默认的箭头。我已经阅读了许多关于这方面的主题,但它不起作用。ActionbarSherlock和homeAsUpIndicator

所以我把我的风格放在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> 

我无法设置“机器人:homeAsUpIndicator”东阳它需要API级别11和我分SDK是9

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

THX

回答

3

要在所有的API,你应该在values-v11values-v14文件夹中创建style.xml。在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级别。

+0

Thx它像一个魅力 – mrroboaat

+0

它的工作,但是,你给的文件夹名称是错误的。正确的文件夹名称是值-v11,值-v14。 –

+1

@AmitJayaswal感谢您的纠正。我已经解决了答案! :) – hardartcore

0

一点题外话,以接受的答案: 如果你不想复制你的两个API-范围的主题,你可以两个项目中值添加到您的AppBaseTheme/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> 
    <item name="android:homeAsUpIndicator" tools:targetApi="11">@drawable/btn_nav_retour</item> 
</style> 

targetApi属性阻止来自lint的错误消息。它注释的xml-item被旧的Android版本忽略。