我目前正在为我的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完全不相似.
解决方法
android:minWidth应该是56dip,android:paddingBottom和android:paddingTop应该是8dip.在< 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>