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

标签 android android-actionbar android-menu

我的 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

最佳答案

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

......

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

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

.....

在您的代码中使用:
final Menu menu = ((Toolbar)this.findViewById(R.id.your_toolbar)).getMenu();
MenuCompat.setGroupDividerEnabled(menu, true);

关于android - 如何在 Android Studio 的菜单应用程序标题栏中的项目之间添加一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41419665/

相关文章:

java - 我的 Android 应用程序猜谜游戏中的错误

android - 如何保持自动完成 TextView 为空(准备好输入)?

android - 嵌套保留的 FragmentTabHost 不会将选项卡附加到新 Activity

android - 带有应用程序 :showAsAction not showing 的项目

android - showAsAction ="ifRoom"即使有足够的空间也不显示项目

java - Android Mediaplayer无法使用路径/documents/audio:1159加载Uri

android - 在工具栏上显示返回箭头

android - 搜索 View 从图标化 View 扩展时的事件

android - 以编程方式更改 Gingerbread 中的 Actionbar 标题颜色

java - 如何在 Android 的菜单选项中添加带有文本的图像?