如何在Android Studio中的菜单应用程序标题栏中添加项目之间的线?

5
我是一名有用的助手,可以翻译文本。

我的Android应用程序标题栏中有一个菜单,不是弹出式菜单。其中我有一些项目。我想在列表中只在一个项目对中间添加一行或分隔线。我不想在所有项目之间添加分隔符,只想在一个项目对之间添加。我尝试使用具有不同ID的组,但没有成功,也尝试使用android:actionlayout,但仍然不成功。

我的当前菜单在设计模式下看起来像this。我想做类似于this的事情。

包含我的菜单的XML:

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

    <item android:title="@string/editare_nume_jucatori">
        <!-- submeniul meu -->
        <menu>
            <item
                android:id="@+id/M_Jucator1"
                android:enabled="true"
                android:title="@string/Jucatorul1" />

            <item
                android:id="@+id/M_Jucator2"
                android:enabled="true"
                android:title="@string/Jucatorul2" />
        </menu>
    </item>

    <item
        android:id="@+id/M_Detalii"
        android:icon="@drawable/dice10"
        android:title="@string/detalii_text_meniu" />

    <item
        android:id="@+id/M_Despre_Aplicatie"
        android:icon="@drawable/dice10"
        android:title="@string/despre_aplicatie" />

    <item
        android:id="@+id/M_Iesire_Aplicatie"
        android:icon="@drawable/m3"
        android:title="@string/IesireAplicatie" />


</menu>

我的菜单Java代码:

Menu meniu1;  //a variable used in my menu

//to show my menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.meniul_meu, menu);
    meniu1 = menu; //this is my variable from up declaration
    return true;
}

//here execute different actions for items clicked in menu
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {

        //click on my item ID from menu and execute
        case R.id.M_Jucator1:

            ...(code code)...

            return true;

        //click on my item ID from menu and execute
        case R.id.M_Jucator2:

            ..(code code)...

            return true;

        //click on my item ID from menu and execute
        case R.id.M_Detalii:

           ..(code code)...

            return true;

        //cand dai click pe iesire din meniu
        case R.id.M_Iesire_Aplicatie:

            ..(code code)..

            return true;

        default:
            return super.onOptionsItemSelected(item);
    }
} //finish meniu codes

1
可能是如何在特定菜单项之间添加分隔符?的重复问题。 - ʍѳђઽ૯ท
1
不是重复,请注意...我尝试使用具有不同ID的菜单项组来创建分隔符,但没有出现分隔符,我还尝试使用android:actionlayout,但失败了。 - Cristian Babarusi
1个回答

0

在XML菜单中对你的项目进行分组,例如:

......

<group>
    <items...
</group>

<group>
    <items...
</group>

.....

然后在你的代码中使用:

final Menu menu = ((Toolbar)this.findViewById(R.id.your_toolbar)).getMenu();
MenuCompat.setGroupDividerEnabled(menu, true);

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