2012-10-31 47 views
4

我想將下面的樣式到我的活動改變了圖標,但它不工作,但我仍然得到默認的黑色「<」圖標。ActionBarSherlock:改變homeAsUpIndicator不起作用

任何人都可以找出什麼在這裏缺少什麼?

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

回答

20

如果我沒有記錯,我工作圍繞這一問題通過移動你應該移動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(或任何其他部件樣式)作爲父。如果這是你的主題,我會相應地命名它。當然是你。


編輯:傑克的評論後更新的答案。

+3

將它移入主題不是解決方法,這是這個合適的位置。 'displayOptions'應該保留在動作條樣式聲明中。 –

+0

謝謝。這很好。我唯一的問題是我想要使用的圖像比默認的上圖更大。該系統添加填充相同的寬度爲自定義的圖像,即使它沒有顯示...任何想法? – speedynomads

+0

感謝它幫助和工作,我被抓我的頭在它從過去兩天 –