2015-12-01 51 views
6

Mój element menu staje się większy, więc chcę je pogrupować i utworzyć dzielnik liniowy, aby oddzielić każdą grupę. Co mam teraz zrobić?Jak dodać dzielnik linii dla pozycji menu Android

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
<!--group1--> 
      <item 
       android:id="@+id/action_addtag" 
       android:title="@string/add_hashtag_string" 
       app:showAsAction="never" /> 
      <item 
       android:id="@+id/action_block_list" 
       android:title="Block" 
       app:showAsAction="never" /> 
      <item 
       android:id="@+id/action_report_list" 
       android:title="Report" 
       app:showAsAction="never" /> 
<!--group2--> 
      <item 
       android:id="@+id/terms" 
       android:title="Terms" 
       app:showAsAction="never" /> 
      <item 
       android:id="@+id/feedback" 
       android:title="FeedBack" 
       app:showAsAction="never" /> 
<!--group3--> 
      <item 
       android:id="@+id/action_setting" 
       android:title="Setting" 
       app:showAsAction="never" /> 
    </menu> 
+0

Ta praca mnie https://stackoverflow.com/questions/30625280/how-to-create-a-simple-divider-in-the-new-navigationview/7020 –

Odpowiedz

10

Wszystko, co musisz zrobić, to określić grupę z unikalnym ID, mam sprawdzone realizację jeśli grupa ma inny identyfikator użytkownika będzie tworzyć dzielnik.

Przykład menu, tworząc separatora:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity"> 

<group android:id="@+id/grp1"> 
    <item 
     android:id="@+id/navigation_item_1" 
     android:checked="true" 
     android:icon="@drawable/ic_home" 
     android:title="@string/navigation_item_1" /> 
</group> 

<group android:id="@+id/grp2"> 
    <item 
     android:id="@+id/navigation_item_2" 
     android:icon="@drawable/ic_home" 
     android:title="@string/navigation_item_2" /> 
</group> 

nadzieję, że pomoże

UPDATE

na element menu może być można użyć tej

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <item 
     android:id="@+id/action_cart" 
     android:title="cart" 
     android:actionLayout="@layout/cart_update_count" 
     android:icon="@drawable/shape_notification" 
     app:showAsAction="always"/> 
</menu> 

i plik actionLayout będzie

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <View 
     android:id="@+id/divider" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/divider"/> 

    <TextView 
     android:id="@android:id/text" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="?android:attr/selectableItemBackground" 
     android:gravity="center_vertical"   
     android:textAppearance="?attr/textAppearanceListItemSmall"/> 

</LinearLayout> 
+2

Próbowałem w ten sposób, ale nie widzę dzielnika linii. Wydaje się, że nie działa z elementem menu, działa tylko z szufladkąNavigator – phongvan

+0

@mdtuyen sprawdź aktualizację – droidev

+1

Przepraszam pana @Vivid Vervet, sprawdziłem z Androidem 4.0, 5.0 rozwiązanie nie działa :( – phongvan