造型Android PopupMenu分隔线

Fle*_*der 5 customization android divider android-layout android-popupwindow

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

菜单图片

但是我希望将白色线条分开,但我无法找到我想要设置的位置.我希望我可以访问底层的ListView,但这似乎不可能.我也看不到与分隔线相关的样式项.

这可能吗,我应该在哪里/如何设置?

Fle*_*der 8

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

创建如下样式......

<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>
Run Code Online (Sandbox Code Playgroud)

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

Context wrapper = new ContextThemeWrapper(mContext, R.style.popupMenuStyle);
PopupMenu popup = new PopupMenu(wrapper, sourceView);
Run Code Online (Sandbox Code Playgroud)

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

如果有人知道原因请添加评论

  • 嘿@Flexicoder 你可以尝试添加分隔线和分隔线高度,如下所示:`&lt;style name="popupMenuStyle" &gt; &lt;item name="android:textColor"&gt;#ffffff&lt;/item&gt; &lt;item name="android:itemBackground"&gt;​​# 000000&lt;/item&gt; &lt;item name="android:dropDownListViewStyle"&gt;@style/DropDown.Theme&lt;/item&gt; &lt;/style&gt; &lt;style name="DropDown.Theme" parent="ThemeOverlay.AppCompat"&gt; &lt;item name= "android:divider"&gt;@color/your_color&lt;/item&gt; &lt;item name="android:dividerHeight"&gt;1dp&lt;/item&gt; &lt;/style&gt;` 我可以通过这种方式摆脱垂直滚动条。 (3认同)