PopupMenu中的浅色和深色主题分隔线

时间:2019-12-09 06:05:46

标签: android android-appcompat

我在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()

这是示例屏幕截图: enter image description here

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

欢迎提出任何建议。

0 个答案:

没有答案