2012-12-21 54 views
10

我正在使用ActionBar Sherlock庫。所以,要更改默認主頁按鈕。我這樣做:ActionBar上的自定義主頁按鈕

<style name="Theme.mTheme" parent="android:Theme.Sherlock.Light.DarkActionBar"> 
    <item name="android:homeAsUpIndicator">@drawable/custom_home</item> 
</style> 

沒有工作

所以,我說這太:

<item name="homeAsUpIndicator">@drawable/custom_home</item> 

現在它的工作。我在每個ActionBar上都有這個自定義主圖標/按鈕。但在我的活動1我有這樣的代碼:

actionBar.setIcon(R.drawable.options_holo_dark); 

當我在那個活動,我可以看到我設置編程即..圖標,options_holo_dark。我在主題ie設置的1,..,custom_home是不可見的。但是圖標已經移動到右側,就好像它在左側給出我在主題中設置的圖標(儘管不可見)。

這就是我現在越來越:

enter image description here

所以,我怎樣才能避免在主頁圖標左側空白區域?

謝謝

+0

使用setLogo()方法,只更改home指示符的圖標! http://developer.android.com/reference/android/app/ActionBar.html#setLogo(int) – Pavlos

回答

21

主題項目android:homeAsUpIndicator(和homeAsUpIndicatorActionBarSherlock)爲向上圖標設置繪製的 - 這是小箭頭指向左邊是旁邊的應用程序圖標顯示,當您在操作欄上稱爲setDisplayHomeAsUpEnabled(true)

向上繪圖的大小定義了應用程序圖標(徽標)的左邊距。默認情況下,它的尺寸是16dp x 16dp。如果你在那裏放置更大的畫面,屏幕邊緣和應用程序圖標之間的差距會更大,即使當前沒有顯示上圖標。

如果您想更改應用程序圖標(徽標)。使用setLogo(int)setLogo(Drawable)方法ActionBar。不要忘記打電話setDisplayUseLogoEnabled(true) - 此方法在顯示應用程序圖標和自定義徽標之間切換。此外,您還可以在清單中定義標誌<application><activity>的屬性android:logo中的徽標,並在主題中設置要在操作欄中使用徽標而不是應用圖標的主題。