我已经能够使用以下技巧更新弹出菜单的分隔线颜色(基于这个答案的提示https://dev59.com/I2Eh5IYBdhLWcg3whTwR#40017199)
创建如下样式...
<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);
这确实显示了一条分割线,但是菜单的高度似乎没有正确计算包括新的分隔符,并且会显示一个垂直滚动条。
如果有人知道原因,请添加评论。
这样可以摆脱垂直滚动条。 - pablogeorge <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();