如何增加应用程序工具栏中菜单项图标和标题之间的填充或边距?

新手上路,请多包涵

我的操作栏中的项目有问题: 在此处输入图像描述

刷新图标太靠近标题“REFRESH”。看起来很尴尬。

我知道解决此问题的一种方法是编辑图像以强制向其添加填充,或者将其包装在这样做的 XML drawable 中。

似乎我不必在图像本身中添加空间来解决这个问题。我觉得应该有一种简单的方法来更改填充或边距属性来解决问题。我很惊讶他们在这里靠得这么近。

有任何想法吗?

原文由 Chad Schultz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 247
2 个回答

我不敢相信我花了这么长时间才弄明白!

最终我想到使用 Android Device Monitor。我去了工具 > Android > Android 设备监视器。当它启动时,我在“设备”选项卡中单击我的应用程序的包名称,然后单击顶部的“UI Automator 的转储视图层次结构”按钮(看起来像多个手机堆叠在一起) “设备”选项卡。这向我展示了当前屏幕的用户界面。然后我可以单击“刷新”按钮并发现它不是彼此相邻的两个视图——而是一个带有 DrawableLeft 的 TextView。我知道,我知道,这很明显,应该是我首先想到的。

我已经找到了 ActionBarSherlock - How to set the padding of each actionbar’s icon? ,但这对我不起作用。然而,这给了我一个我需要的例子——改变 ActionButton 样式。

现在我知道它是一个带有 DrawableLeft 的 TextView,我知道我需要更改 DrawablePadding。这就是我需要对样式所做的更改。

要更改 ActionButton 主题,我需要将其添加到我的 styles.xml 中:

 <style name="ActionButton" parent="@android:style/Widget.ActionButton">
    <item name="android:drawablePadding">@dimen/action_button_padding</item>
</style>

维度.xml:

 <dimen name="action_button_padding">4dp</dimen>

然后调整 style.xml 的主题部分:

 <style name="Theme.MyTheme"
       parent="Theme.AppCompat.Light.NoActionBar">
    <!-- other styles -->
    <item name="android:actionButtonStyle">@style/ActionButton</item>
</style>

它就是有效!无需设置自定义 ActionProvider、编辑图像以在图像文件中添加间距或为每个按钮使用额外的 XML 文件。

原文由 Chad Schultz 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用菜单项中的自定义布局设置,例如:

 <item
    android:id="@+id/common_submenu_sync_contact"
    android:title="Refresh"
    app:actionLayout="@layout/custom_menu_item" />

创建布局文件并将此文件设置为 app:actionLayout

自定义菜单项.xml

 <?xml version="1.0" encoding="utf-8"?>
<ImageView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/refresh"
    android:padding="10dp" />

快乐的编码。

原文由 dipali 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题