【问题标题】:Spacing between overflow icon and action items in ActionBarSherlockActionBarSherlock 中溢出图标和操作项之间的间距
【发布时间】:2012-10-20 09:54:15
【问题描述】:

我在我的项目中使用 ActionBarSherlock(ABS),溢出图标在操作项的左侧占据了太多的空白。我的项目中有最新的 ABS 库。您可以看到下面提到的问题的屏幕截图。

手机运行在 JellyBean 版本上。如何减少溢出图标和操作项之间的空间?

更新

我尝试通过应用自定义主题来更改操作项属性

<style name="DelightActionButtonStyle" parent="Widget.Sherlock.ActionButton">
        <!--  <item name="android:background">?attr/actionBarItemBackground</item> -->
        <item name="android:background">@color/black</item>
        <item name="android:minHeight">?attr/actionBarSize</item>

        <item name="android:minWidth">0dp</item>
        <item name="android:gravity">center</item>
        <item name="android:paddingLeft">20dp</item>
        <item name="android:paddingRight">20dp</item>
        <item name="android:scaleType">center</item>
    </style>

只有背景属性在没有菜单按钮的设备上生效。我玩了改变边距和填充的属性,似乎没有任何效果。有没有办法控制操作项的这些属性?

【问题讨论】:

  • 我更改了 minWidth 属性,但它只显示 ICS 之前的变化,无法反映 ICS+ 手机的任何变化。
  • 您是否添加了android:actionButtonStyleactionButtonStyle?前者控制 ICS+。

标签: android android-layout android-actionbar actionbarsherlock


【解决方案1】:

如果真的需要改,下面是如何减小溢出按钮的宽度:

<style name="AppTheme" parent="Theme.Sherlock">
    <item name="android:actionOverflowButtonStyle">@style/MyOverflowButton</item>
</style>

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

【讨论】:

  • 哦,android:padding 在三星 s3 和 s4 上帮助了我很多,因为 android:paddingLeftandroid:paddingRight 不起作用。
【解决方案2】:

您的操作按钮太小。它们不应小于 48dp。如果必须这样做(不应该这样做),您可以覆盖 actionButtonStyle android:minWidth 属性:

https://stackoverflow.com/a/10808259/377260

确保还包括android:actionButtonStyle

【讨论】:

  • 无法在 4.0 以上的设备上运行,至少在没有菜单按钮的设备上运行。
  • 你是对的,这不会使溢出按钮变小。这可能是因为它真的,真的不应该小于 48dp 宽。不过,我会看看这是否可行。