确定MenuItem的SubMenu

时间:2017-01-24 07:49:27

标签: android menu menuitem android-menu

我的应用中有一个Observable.fromPromise(fooAPIService.find(123))。在ngFor的菜单中,我有两个子菜单:

NavigationView

在我的活动NavView中,我希望能够找出所选项目所在的子菜单。我该怎么做?

1 个答案:

答案 0 :(得分:0)

到目前为止,我还没有找到现有的解决方案,但是我找到了一个解决方法:

要以最小的额外XML开销来解决这个问题,请将每组子菜单项包装在一个组中,并使用Id:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/nav_group_one"
        android:title="SubMenu A">
        <menu>
            <group id="@+id/nav_group_wrapper_one">
                <item
                    android:checkable="true"
                    android:title="One"/>
                <item
                    android:checkable="true"
                    android:title="Two"/>
            </group>
        </menu>
    </item>

    <item
        android:id="@+id/nav_group_two"
        android:title="SubMenu B">
        <menu>
            <group id="@+id/nav_group_wrapper_two">
                <item
                    android:checkable="true"
                    android:title="Three"/>
                <item
                    android:checkable="true"
                    android:title="Four"/>
            </group>
        </menu>
    </item>
</menu>

这样,人们可以简单地调用item.getGroupId()来推断它所包含的子菜单。