2017-04-22 230 views
0

我想显示每个菜单组之间的分隔线。我已经尝试给每个组提供一个唯一的ID,但那不起作用。我发现了一些其他解决方案,但它们看起来有点奇怪,例如创建1dp高度的LinearLayout。如何在菜单组之间添加分隔符/分隔符?

这是它如何显示。 menu without group dividers

下面是MENU XML代码:

<?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" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context="com.example.marcelofb.cratediggersguide.MainActivity"> 

<item 
    android:id="@+id/search" 
    android:icon="@android:drawable/ic_menu_search" 
    android:title="@string/search_title" 
    app:actionViewClass="android.support.v7.widget.SearchView" 
    app:showAsAction="collapseActionView|ifRoom"/> 

<item 
    android:id="@+id/searchOptions" 
    android:title="Tools" 
    android:icon="@android:drawable/ic_menu_manage" 
    app:showAsAction="always"> 


<group 
    android:id="@+id/radioGroupNovoUsado" 
    android:checkableBehavior="single"> 

    <item 
     android:id="@+id/novo" 
     android:title="NOVO" 
     app:showAsAction="never" > 
    </item> 

    <item 
     android:id="@+id/usado" 
     android:title="USADO" 
     app:showAsAction="never" /> 
</group> 


<group 
    android:id="@+id/radioGroupCompactoLP" 
    android:checkableBehavior="single"> 

    <item 
     android:id="@+id/compacto" 
     android:title="COMPACTO" 
     app:showAsAction="never" /> 

    <item 
     android:id="@+id/longplay" 
     android:title="LP" 
     app:showAsAction="never" /> 
</group> 


<group 
    android:id="@+id/radioGroupNacionalImportado" 
    android:checkableBehavior="single"> 

    <item 
     android:id="@+id/nacional" 
     android:title="NACIONAL" 
     app:showAsAction="never" /> 

    <item 
     android:id="@+id/importado" 
     android:title="IMPORTADO" 
     app:showAsAction="never" /> 
</group> 

</item> 

回答

0

尝试使用动作布局

<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=".LandingActivity"> 
<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有这样的XML。

<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
<item android:title="Communicate"> 
    <menu> 
     <item 
      android:id="@+id/nav_share" 
      android:icon="@drawable/ic_menu_share" 
      android:title="Share" /> 
     <item 
      android:id="@+id/nav_send" 
      android:icon="@drawable/ic_menu_send" 
      android:title="Send" /> 
    </menu> 
</item> 
<item android:title="Second category"> 
    <menu> 
     <item 
      android:id="@+id/nav_share" 
      android:icon="@drawable/ic_menu_1" 
      android:title="menu 1" /> 
     <item 
      android:id="@+id/nav_send" 
      android:icon="@drawable/ic_menu_2" 
      android:title="menu 2" /> 
    </menu> 
</item> 

这样,所有的项目即 - 通信,第二类将通过线划分不同的组中显示被

+0

你好,这个代码创建选项里面不同的菜单菜单。我想直接在选项菜单上显示所有选项。即使实施不同的菜单,它仍然不显示分频器。但我感谢你的帮助! – marcelofb