2015-12-01 3 views
6

Мой пункт меню становится больше, так что я хочу группировать их и создавать разделители строк для разделения каждой группы. Что мне теперь делать?Как добавить разделитель строк для пункта меню 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

Эта работа для меня https://stackoverflow.com/questions/30625280/how-to-create-a-simple-divider-in-the-new-navigationview/7020 –

ответ

10

Все, что вам нужно сделать, это определить группу с уникальным идентификатором, я проверил реализацию, если группа имеет различные идентификаторы будет создавать делитель.

меню Пример, создавая разделитель:

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

надеюсь, что это помогает

UPDATE

для пункта меню может быть, вы можете использовать этот

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

и actionLayout файл будет

<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

Я пробовал этот путь, но я не вижу разделителя строк. Кажется, что это не работает с пунктом меню, работает только с drawerNavigator – phongvan

+0

@mdtuyen проверить обновление – droidev

+1

Извините mr @Vivid Vervet, я проверил с android 4.0, 5.0 решение не работает :( – phongvan