web-dev-qa-db-fra.com

Android Diviseur de groupes de menus NavigationView

La bibliothèque de conception de support Android fournit NavigationView:

 <Android.support.design.widget.NavigationView
    ...
    app:menu="@menu/navigation_drawer_items" />

menu/navigation_drawer_items:

<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <group Android:checkableBehavior="single">
        <item .../>
        ...
    </group>

    <group Android:checkableBehavior="single">
        <item .../>
        ...
    </group>

</menu>

Comment ajouter un séparateur, un séparateur ou un espace entre les groupes (comme sur la photo)?

enter image description here

69
Shaddow

Juste donnez un identifiant unique à chaque groupe. Il créera automatiquement un séparateur.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <group Android:id="@+id/group_feature"
        Android:checkableBehavior="single">
        <item Android:id="@+id/navdrawer_item_map"
            Android:checked="true"
            Android:icon="@drawable/ic_drawer_map"
            Android:title="@string/navdrawer_item_map"/>

    </group>
    <group Android:id="@+id/group_settings"
        Android:checkableBehavior="single">
        <item Android:id="@+id/navdrawer_item_settings"
            Android:icon="@drawable/ic_drawer_settings"
            Android:title="@string/navdrawer_item_settings"/>

    </group>
</menu>
203
Moinkhan

vous faites quelque chose comme ça.

<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <group Android:checkableBehavior="single">
        <item
            Android:id="@+id/nav_home"
            Android:icon="@drawable/ic_dashboard"
            Android:title="Home" />
        <item
            Android:id="@+id/nav_messages"
            Android:icon="@drawable/ic_event"
            Android:title="Messages" />
        <item
            Android:id="@+id/nav_friends"
            Android:icon="@drawable/ic_headset"
            Android:title="Friends" />
        <item
            Android:id="@+id/nav_discussion"
            Android:icon="@drawable/ic_forum"
            Android:title="Discussion" />
    </group>

    <item Android:title="Sub items">
        <menu>
            <item
                Android:icon="@drawable/ic_dashboard"
                Android:title="Sub item 1" />
            <item
                Android:icon="@drawable/ic_forum"
                Android:title="Sub item 2" />
        </menu>
    </item>

</menu>

ce code provient de l'exemple d'application Design Library créé par Chris Barnes https://github.com/chrisbanes/cheesesquare

12
tyczj

Je l'utilise de cette façon:

<group
        Android:id="@+id/group1"
        Android:checkableBehavior="single">
        <item
            Android:id="@+id/menu1"
            Android:icon="@drawable/somedrawable"
            Android:title="Lorem ipsum" />
</group>
<group
        Android:id="@+id/group2"
        Android:checkableBehavior="single">
        <item
            Android:id="@+id/menu2"
            Android:icon="@drawable/somedrawable"
            Android:title="Dolor it amet" />
</group>

Les identifiants sont importants (+ id/groupe1 et + id/groupe2). Sans identifiant, vous ne verrez pas de séparateur. Cela fonctionne dans mon application.

10
adek

Le diviseur dans NavigationMenuList a été créé en regroupant les éléments du menu, mais en vous assurant que vous fournissez l’identifiant de groupe @ + id nécessaire. Le code ci-dessous fonctionne pour vous

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
<group
    Android:id="@+id/gp_one"
    Android:checkableBehavior="single">
    <item
        Android:id="@+id/nav_home"
        Android:icon="@drawable/ic_avatar"
        Android:title="Home" />
</group>

<group
    Android:id="@+id/gp_two"
    Android:checkableBehavior="single">
    <item
        Android:id="@+id/nav_account"
        Android:icon="@drawable/ic_avatar"
        Android:title="My Account" />
    <item
        Android:id="@+id/nav_orders"
        Android:icon="@drawable/ic_avatar"
        Android:title="My Orders" />
    <item
        Android:id="@+id/nav_wishlist"
        Android:icon="@drawable/ic_avatar"
        Android:title="My Wishlist" />
</group>

<group
    Android:id="@+id/gp_three"
    Android:checkableBehavior="single">
    <item
        Android:id="@+id/nav_rateus"
        Android:icon="@drawable/ic_avatar"
        Android:title="Rate Us" />
    <item
        Android:id="@+id/nav_share"
        Android:icon="@drawable/ic_avatar"
        Android:title="Share" />
    <item
        Android:id="@+id/nav_logout"
        Android:icon="@drawable/ic_avatar"
        Android:title="Logout" />
</group>
2
Ness Tyagi

Vous pouvez ajouter votre texte entre <item Android:title="title_name"> et </item>

<?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">

    <group Android:checkableBehavior="single">
        <item
            Android:id="@+id/nav_display_image"
            Android:title="Load Image"
            Android:icon="@drawable/ic_menu_gallery"
            app:showAsAction="always"

            app:actionLayout="@layout/switch_nav_drawer"/>
        <item
            Android:id="@+id/nav_camera"
            Android:icon="@drawable/ic_menu_camera"
            Android:title="Saved News" />
        <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" />

    </group>

    <item Android:title="Settings">
        <menu>
            <item
                Android:id="@+id/nav_manage"
                Android:icon="@drawable/ic_menu_manage"
                Android:title="Tools" />
        </menu>
    </item>

    <item
        Android:id="@+id/about_us"
        Android:icon="@drawable/ic_info_black_24dp"
        Android:title="About Us"></item>


</menu>
1
Abhishek Tandon