【问题标题】:ActionBarSherlock - How to set the padding of each actionbar's icon?ActionBarSherlock - 如何设置每个操作栏图标的填充?
【发布时间】:2012-05-25 18:02:16
【问题描述】:

如何使用 ActionBarSherlock 使操作栏的图标彼此更近或更远? android:layout_marginLeftandroid:paddingRight之类的东西?

如果我只是在操作栏上添加图标,与下面 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>

【问题讨论】:

    标签: android icons padding android-actionbar actionbarsherlock


    【解决方案1】:
    <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",不知道是否需要)。请检查一下
    • 很奇怪。我尝试制作一个新项目并在那里设置一个新主题。我什至重新下载了 ABS,以防万一图书馆出了问题(因为我在 4.0.1 上,现在是 4.1),但仍然没有。我尝试在真实设备和模拟器上运行,但没有任何改变......也许这只是我的结局,除了我上面写的东西之外,我还需要改变其他东西......无论如何,非常感谢您的回答
    • @matthias 操作按钮图标大小设置如何?也可以吗?
    • @style/MyActionButtonStyle 需要 api 11
    • @J. Kowalski:这就是为什么在低于 API 11 的情况下会有额外的&lt;item name="actionButtonStyle"&gt;。你所指的只是一个 lint 警告。为了绝对正确,您必须创建一个具有android:actionButtonStyle 等属性的res-v11/styles.xml。但您也可以忽略 lint 警告,因为 Android 也会忽略旧 API 上的此类属性。