我目前正在为我的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>