【问题标题】:Increase spacing between action buttons?增加动作按钮之间的间距?
【发布时间】:2016-02-09 01:33:03
【问题描述】:

这是我现在的menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_save"
        android:title="Save"
        android:icon="@drawable/ic_action_save"
        app:showAsAction="ifRoom|withText" />
    <item
        android:id="@+id/action_delete"
        android:title="Delete This"
        android:icon="@drawable/ic_action_delete"
        app:showAsAction="never"/>
</menu>

但是,溢出菜单和主保存按钮之间的间距非常小。我想增加更多间距。

这是我的styles.xml

<resources>

    <style name="MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- ... -->
        <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
    </style>

    <style name="MyActionButtonStyle" parent="Widget.AppCompat.Light.ActionButton">
        <item name="android:paddingEnd">100dip</item>
        <item name="android:paddingRight">100dip</item>
        <item name="android:layout_marginRight">100dip</item>
        <item name="android:horizontalSpacing">100dip</item>
    </style>

    <!-- ... -->

</resources>

不幸的是,这种风格没有效果。

我唯一能去工作的是&lt;item name="android:minWidth"&gt;300dp&lt;/item&gt;。我现在正在使用它,但问题是我将拥有不同宽度的各种按钮,所以如果我可以设置间距或填充而不是最小宽度会更好。

为什么我的100dip 的所有填充规则都不起作用,我应该怎么做?

【问题讨论】:

  • 创建自定义操作栏...

标签: android android-actionbar spacing


【解决方案1】:

找到解决方案,在styles.xml文件中添加了以下几行,它起作用了!!

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
</style>

<style name="MyActionButtonStyle" parent="AppBaseTheme">
    <item name="android:minWidth">20dip</item>
    <item name="android:padding">0dip</item>
</style>

【讨论】:

  • 填充 0dip? “如果我可以设置间距或填充而不是最小宽度会更好”
  • 我尝试将android:padding 设置为20dip,确实有效果。不幸的是,文本被裁剪了,因为它在所有方面都设置了填充。我只需要添加水平(左侧和右侧)填充。