减少菜单项之间的空间

时间:2018-08-24 17:26:10

标签: android

我有以下菜单:

<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">


    <item
        android:title="@string/search_title"
        android:id="@+id/action_search_music"
        android:icon="@drawable/ic_add_final"

        app:actionViewClass="android.support.v7.widget.SearchView"
        app:showAsAction="ifRoom|collapseActionView" />

    <item
        android:id="@+id/more_options"
        android:title="Rename playlist"
        android:orderInCategory="101"
        app:showAsAction="always"
        android:icon="@drawable/ic_more_vert_black_24dp">

        <menu >
            <item android:id="@+id/rename_playlist"
                android:title="Rename playlist"
                >
            </item>
            <item android:id = "@+id/action_delete_playlist"
                android:title="Delete playlist"/>

        </menu>
    </item>
</menu>

现在,两个菜单项之间有一个很大的空间,我无法减少。有什么想法可以减少空间吗?

编辑:这里的答案:https://stackoverflow.com/a/10085862/6427401对我不起作用

7 个答案:

答案 0 :(得分:0)

首先,我建议您查看图标图像,也许它们具有一些透明的填充。 另外,您可以使用“活动onPrepareOptionsMenu(final Menu menu)”功能来操作菜单。

例如,您可以更改图标:

@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
    final MenuItem menuItem = menu.getItem(position);
    Drawable icon = menuItem.getIcon();
    menuItem.setIcon(doSomething(icon));
    return super.onPrepareOptionsMenu(menu);
}

或者,您可以使用XML或以下类似形式的自定义actionViewClass:

menuItem.setActionView(yourView);

答案 1 :(得分:0)

在您的styles.xml中添加下一行

<item name="listPreferredItemPaddingLeft">5dp</item> 

答案 2 :(得分:0)

在您的项目dimens.xml中添加以下行:

 <dimen name="design_navigation_separator_vertical_padding">0dp</dimen>

答案 3 :(得分:0)

尝试为操作栏创建自定义视图。首先创建custom_actionbar.xml(layout)。

    ActionBar mActionBar = getSupportActionBar();
    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);

    View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
           // Bind view like this
           // TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
            //mTitleTextView.setText("My Own Title");

    mActionBar.setCustomView(mCustomView);
    mActionBar.setDisplayShowCustomEnabled(true);

注意:-使用工具栏可以使自定义更加容易。

希望它会帮助您。

答案 4 :(得分:0)

将此添加到您的应用主题。

 <item name="android:actionButtonStyle">@style/ActionButtonStyle</item>

ActionButtonStyle

<style name="ActionButtonStyle" parent="Widget.AppCompat.ActionButton">
        <item name="android:minWidth">0dip</item>
        <item name="android:paddingStart">8dip</item>
        <item name="android:paddingEnd">8dip</item>
    </style>

答案 5 :(得分:0)

我尝试了所有问题,但并非每个答案都能解决我的问题。 这帮助我解决了问题。

首先,转到 styles.xml 文件并将其放置在TAG内的下方

<style name="NavigationTheme" parent="AppTheme">
    <item name="android:textSize">16sp</item>
    <item name="android:layout_marginBottom">-5dp</item> </style>

接下来,在XML类(在我的情况下是activity_main.xml)部分的内部代码下面。

android:theme="@style/NavigationTheme"

就像下面的图片一样

enter image description here

答案 6 :(得分:0)

对我来说,我想减小物品的宽度。就是这样的组合:

<style name="ActionButton" parent="@android:style/Widget.ActionButton">
    <item name="android:drawablePadding">5dp</item>
    <item name="android:minWidth">0dip</item>
</style>