ActionBarSherlock - 如何设置每个操作栏图标的填充?

12

如何使用ActionBarSherlock使操作栏中的图标更靠近或更远?类似于android:layout_marginLeftandroid:paddingRight这样的东西?

如果我只是在操作栏上添加图标,它们就比下面Soundhound的截图中的距离更远:

SoundHound

我的themes.xml文件:

<style name="Theme.AstraTheme_Purple" parent="@style/Theme.Sherlock">
    <item name="actionBarStyle">@style/Widget.AstraTheme_Purple.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.AstraTheme_Purple.ActionBar</item>

    <item name="actionButtonStyle">@style/Widget.AstraTheme_Purple.ActionButton</item>
    <item name="android:actionButtonStyle">@style/Widget.AstraTheme_Purple.ActionButton</item>
</style>

<style name="Widget.AstraTheme_Purple.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">@drawable/purple_bar</item>
    <item name="background">@drawable/purple_bar</item>
</style>

<style name="Widget.AstraTheme_Purple.ActionButton" parent="Widget.Sherlock.ActionButton">
    <item name="android:minWidth">50dip</item>
</style>

1个回答

34
<style name="AppTheme" parent="Theme.Sherlock">
    <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
    <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

<style name="MyActionButtonStyle" parent="Widget.Sherlock.ActionButton">
    <item name="android:minWidth">32dip</item>
    <item name="android:padding">0dip</item>
</style>

ActionBar按钮的android:minWidth默认值为56dip。别忘了将@style/AppTheme设置为Activity的主题。


我尝试在现有主题中包含actionButtonStyle,甚至创建了一个新主题来检查它(并通过Manifest和onCreate方法中的setTheme应用它),但没有任何变化。我错过了什么吗?我编辑了我的themes.xml问题(我包括item name="android:actionButtonStyle",不知道是否需要)。请检查一下。 - Alex Styl
它可以运行。但只适用于11级及以上。既然如此,我为什么要使用ActionBarSherlock呢? - Bagusflyer
@bagusflyer:如果你从上面复制样式,它也可以在使用ActionBarSherlock的api <11上工作。ABS仅用于在api <11上使用操作栏。 - Matthias Robbers
2
<item name="android:actionButtonStyle">@style/MyActionButtonStyle</item> 需要API 11。 - Kaloyan Roussev
1
@J. Kowalski:这就是为什么在API 11以下还有额外的<item name="actionButtonStyle">。你所提到的只是一个lint警告。要绝对正确,你需要创建一个res-v11/styles.xml,其中包含像android:actionButtonStyle这样的属性。但你也可以忽略lint警告,因为Android在旧的API上也会忽略这些属性。 - Matthias Robbers
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接