8

我目前正在为我的 MenuItem 使用自定义布局:

在此处输入图像描述

代码是基本的:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_custom"
        android:actionLayout="@layout/menu_layout"
        android:showAsAction="always"/>

</menu>

虽然在 Android 设计和指南中描述了以像素为单位的图标大小,但我不知道我应该为这个图标使用的边距、填充、宽度和高度,所以它在所有设备上看起来都是合法的。

我目前的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/searchProgressWrapper"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >


    <ImageButton
        android:id="@+id/ivfolder"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:scaleType="fitCenter"
        android:background="@drawable/abs__item_background_holo_dark"
        android:src="@drawable/ic_menu_archive" />


</RelativeLayout>

最大的问题是,如您所见,图标的宽度完全错误,与其他 MenuItem 完全不同。

4

2 回答 2

16

android:minWidth应该是56dipandroid:paddingBottom应该android:paddingTop8dip。发现于<sdk>/platforms/android-17/data/res/values/dimens.xml

<!-- Minimum width for an action button in the menu area of an action bar -->
<dimen name="action_button_min_width">56dip</dimen>

<!-- Vertical padding around action bar icons. -->
<dimen name="action_bar_icon_vertical_padding">8dip</dimen>
于 2013-01-11T22:33:45.557 回答
-1
View view = mToolbar.getMenu().findItem(R.id.spinner).getActionView();

view.setPadding(0,0,0,0);

这对我有用。

于 2017-07-19T08:24:30.567 回答