2015-06-18 8 views
60

Android Design Library supporto fornire NavigationView:NavigationView Android gruppo di menu divisore

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

come aggiungere divisorio, separatore o lo spazio tra i gruppi (come nella foto)?

enter image description here

+0

aggiunge

[gli oggetti] ... – Harry

risposta

172

Basta dare un ID univoco a ciascun gruppo. Creerà automaticamente un separatore.

<?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> 
+3

puoi dirmi come aggiungere colore a questa linea –

+0

Questo non sembra funzionare se hai gruppi in file di layout diversi. – Whome

+1

@YaseenAhmad http://stackoverflow.com/a/30731387/3544839 a chnge il colore – Moinkhan

12

si fa qualcosa di simile.

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

questo codice è tratto dall'esempio app Design Library fatta da Chris Barnes https://github.com/chrisbanes/cheesesquare

+0

Le tue opere di soluzioni e il suo sottotitolo aggiuntivo, che è bello, ma domanda era quasi separatore . Se ometto il titolo, c'è un divisore ma anche uno spazio dove dovrebbe essere il titolo. – Shaddow

+1

non hai bisogno di un titolo, tutto quello che devi fare è dare l'articolo un id – tyczj

+0

@Shaddow vedi questa domanda http://stackoverflow.com/questions/30790420/how-to-get-dividers-in-navigationview-menu- senza titoli # 30790420 – tyczj

9

sto usando in questo modo:

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

ID sono importanti (+ id/group1 e + id/group2). Senza id non vedrai divisore. Funziona nella mia app.

1

È possibile aggiungere il testo tra il <item android:title="title_name"> e </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

divisore in NavigationMenuList raggiunta con il raggruppamento delle voci di menu, ma assicurarsi che si stanno dando gruppo id @ + id che è necessaria. codice qui sotto sta lavorando per voi

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

+0

Per il divisore dovremo dividerli in gruppi separati? In realtà sto usando 'BottomNavigationView' –