ActionBar上的自定义主页按钮

时间:2012-12-21 10:09:42

标签: android actionbarsherlock

我正在使用ActionBar Sherlock库。因此,要更改默认主页按钮。我这样做了:

<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上都有这个自定义主页图标/按钮。但在我的一个活动中,我在代码中有这个:

actionBar.setIcon(R.drawable.options_holo_dark);

当我进入该活动时,我可以看到我以编程方式设置的图标,即.., options_holo_dark 。我在主题中设置的1,即 custom_home 是不可见的。但是Icon已经向右移动了,好像它在左边给了我在主题中设置的图标空间(尽管不可见)。

这就是我现在所得到的:

enter image description here

那么,我怎样才能避免主页图标左侧的空白区域?

谢谢

1 个答案:

答案 0 :(得分:21)

主题项android:homeAsUpIndicator(以及homeAsUpIndicator的{​​{1}})为up图标设置drawable - 这是指向左侧的小箭头,当您调用时,它会显示在应用程序图标旁边操作栏上显示ActionBarSherlock

up drawable的大小定义了app图标(徽标)的左边距。默认情况下,其尺寸为16dp x 16dp。如果你放在那里更宽的抽屉,屏幕边缘和应用程序图标之间的间隙会更宽,即使此时没有显示向上图标。

如果您想更改应用图标(徽标)。使用setDisplayHomeAsUpEnabled(true)的{​​{1}}或setLogo(int)方法。不要忘记拨打setLogo(Drawable) - 此方法会在显示应用图标和自定义徽标之间切换。您还可以在ActionBarsetDisplayUseLogoEnabled(true)标记的属性android:logo中的清单中定义徽标,并在主题中设置您要在操作栏中使用徽标而不是应用图标。