对于自定义的 MenuItem 布局,我应该使用什么填充、边距和尺寸?

8

我目前正在使用自定义布局来处理我的菜单项:

enter image description here

这段代码很基础:

<?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>

问题很大,因为你可以看到,图标的宽度完全错误,与其他菜单项不相似。

2个回答

16

android:minWidth 应该为 56dipandroid:paddingBottomandroid: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>

@PavanKumar 在上面的例子中,你可以在xml文件的RelativeLayout里直接添加android:padding="8dip"。你可以直接这样做,或者你可以把它添加到你的dimens.xml文件中,并从那里引用它。 - ban-geoengineering

-1
View view = mToolbar.getMenu().findItem(R.id.spinner).getActionView();

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

这对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接