我想在每个菜单组之间显示一个分隔符。我已经尝试给每个组一个唯一的ID,但这不起作用。我找到了一些其他解决方案,但它们看起来有点奇怪,比如创建一个高度为1dp的LinearLayout。
以下是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 :(得分:3)
嗯,他们在Android 22.1.0中添加了util方法。 https://developer.android.com/reference/android/support/v4/view/MenuCompat
MenuCompat.setGroupDividerEnabled(Menu menu, boolean enabled)
科特林样式
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.what_ever, menu)
MenuCompat.setGroupDividerEnabled(menu, true)
return super.onCreateOptionsMenu(menu)
}
implementation "com.android.support:support-v4:28.0.0-rc01"
答案 1 :(得分: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 :(得分:-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>
这样所有的项目,即 - 通信,第二类将显示在不同的组中,按行划分