样式 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();
我在我的应用程序中使用了几个 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();