在菜单项xml之间添加水平视图(行)

问题描述 投票:1回答:2

我正在使用导航视图,标签菜单和项目,我想在每个选项之间添加线条。这是我的菜单:

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_camera"
        android:icon="@drawable/ic_menu_camera"
        android:title="Import" />
    <item
        android:id="@+id/nav_gallery"
        android:icon="@drawable/ic_menu_gallery"
        android:title="Gallery" />
    <item
        android:id="@+id/nav_slideshow"
        android:icon="@drawable/ic_menu_slideshow"
        android:title="Slideshow" />
    <item
        android:id="@+id/nav_manage"
        android:icon="@drawable/ic_menu_manage"
        android:title="Tools" />
</group>

我不太清楚这个项目的工作原理以及为什么我们不能从XML中添加其他类的标记。

android xml navigationview android-navigationview
2个回答
4
投票

您必须将要分隔的项目分组。每个小组都需要一个唯一的ID。

<group android:id="@+id/group1"
    android:checkableBehavior="single">
    <item
        android:id="@+id/first"
        android:icon="@drawable/ic_settings"
        android:title="First item" />
</group>

<group android:id="@+id/group2"
    android:checkableBehavior="single">
    <item
        android:id="@+id/second"
        android:icon="@drawable/ic_menu_send"
        android:title="Second item" />
</group>

<group android:id="@+id/group3"
    android:checkableBehavior="single">
    <item
        android:id="@+id/third"
        android:icon="@drawable/ic_menu_share"
        android:title="Third item" />
</group>

enter image description here


0
投票

@kulosos回答仅适用于drawerNavigator,如快照中所示。

对于菜单项,请尝试以下操作:

<menu>
    <group android:id="@+id/group1" >
        <item
            android:id="@+id/Import"
            android:title="@string/Import"/>

        <item
            android:id="@+id/Gallery"
            android:title="@string/Gallery"/>
    </group>

    <group android:id="@+id/group2">
        <item
            android:id="@+id/action_settings"
            android:title="@string/action_settings"/>
    </group>
</menu>

MenuCompat.setGroupDividerEnabled(menu, true)添加onCreateOptionsMenu以使小组工作。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    MenuCompat.setGroupDividerEnabled(menu, true);
    return true;
}
© www.soinside.com 2019 - 2024. All rights reserved.