样式 Android PopupMenu 分隔线

Styling Android PopupMenu Divider Lines

我在我的应用程序中使用了几个 PopupMenu,它们都按预期工作

但我希望用白线分隔各个项目,但我找不到要设置它的位置。我希望我能到达底层的 ListView 但这似乎是不可能的。我也看不到与分隔线相关的样式项。

这可能吗,where/how我应该设置这个吗?

我已经能够使用以下技术更新 PopupMenu 上的分隔线颜色(基于此答案的线索 )

创建样式如下...

<style name="popupMenuStyle" >
    <item name="android:textColor">#ffffff</item>
    <item name="android:itemBackground">#000000</item>
    <item name="android:divider">#eaeaea</item>
    <item name="android:dividerHeight">1dp</item>
</style>

然后在创建菜单时创建上下文包装器

Context wrapper = new ContextThemeWrapper(mContext, R.style.popupMenuStyle);
PopupMenu popup = new PopupMenu(wrapper, sourceView);

这确实显示了一条分界线,但是菜单的高度似乎没有正确计算以包含新的分隔线,并且显示了一个垂直滚动条。

如果有人知道原因请补充评论

我就是这样实现的。 colorBankground是改变分割线的颜色。

    <style name="PopupMenu">
    <item name="android:itemBackground">@color/background_medium_gray</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:textColor">@android:color/black</item>
    <item name="android:colorBackground">@color/BackgroundGray</item>
    <item name="android:dividerHeight">1dp</item>
</style>

    Context context = new ContextThemeWrapper(getActivity(), R.style.PopupMenu);
    final PopupMenu popupMenu = new PopupMenu(context, view);

    final MenuInflater menuInflater = popupMenu.getMenuInflater();