我在toolbar
中附加了一个PopupMenu和一个按钮,并且代码看起来像这样:
val popup = PopupMenu(this, view)
popup.setOnMenuItemClickListener(this)
popup.inflate(R.menu.menu_button)
MenuCompat.setGroupDividerEnabled(popup.menu, true)
popup.show()
它显示菜单组之间的分隔线。但是问题是,我无法为浅色和深色主题设置分隔线的颜色。
这是我的styles.xml如下:
<item name="toolbarStyle">@style/MyToolbarStyle</item>
<style name="MyToolbarStyle" parent="Widget.AppCompat.Toolbar">
<item name="android:backgroundTint">@color/some_color</item>
<item name="android:divider">@color/white</item>
<item name="android:dividerHorizontal">@color/white</item>
<item name="android:actionBarDivider">@color/white</item>
<item name="actionBarDivider">@color/white</item>
</style>
我也试图为PopupMenu设置单独的样式。这是样式:
<item name="popupMenuStyle">@style/MyPopup</item>
<style name="MyPopup" parent="Widget.AppCompat.ListPopupWindow">
<item name="android:popupBackground">@color/come_color</item>
<item name="android:divider">@color/white</item>
<item name="android:dividerHorizontal">@color/white</item>
<item name="android:dividerHeight">1dp</item>
</style>
由于什么都没用,所以我什至尝试使用如下的下拉样式:
<item name="dropDownListViewStyle">@style/DropDownListStyle</item>
<style name="DropDownListStyle" parent="Widget.AppCompat.ListView.DropDown">
<item name="android:divider">@color/white</item>
<item name="android:dividerHorizontal">@color/white</item>
</style>
很少有人建议尝试使用ContextThemeWrapper
,所以我什至尝试过:
val wrapper = ContextThemeWrapper(this, R.style.DropDownListStyle)
val popup = PopupMenu(wrapper, optionsMenuActions)
popup.setOnMenuItemClickListener(this)
popup.inflate(R.menu.menu_pay_now)
MenuCompat.setGroupDividerEnabled(popup.menu, true)
popup.show()
和menu_button.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">
<group android:id="@+id/group1">
<item
android:id="@+id/menu_save_invoice"
android:title="item1"
app:showAsAction="never" />
<item
android:id="@+id/menu_subtotal_unlock"
android:title="item2"
app:showAsAction="never" />
</group>
<group android:id="@+id/group2">
<item
android:id="@+id/menu_cancel_transaction"
android:title="item3"
app:showAsAction="never" />
</group>
</menu>
欢迎提出任何建议。