怀抱观古今,寝食展戏谑。这篇文章主要讲述Android更改popupmenu背景并显示图标相关的知识,希望能为你提供帮助。
似乎popupmenu是无法单独设置style的,好像是由context决定的,前几天需要设置style,找了很久才找一一个办法,似乎是通过 ContextThemeWrapper 包装一个 Context 然后把 Context 作为参数传递给popupmenu的构造函数
java代码如下
/**************************************************************************/ Context wrapper = new ContextThemeWrapper(this, R.style.MyPopupStyle); /**************************************************************************/PopupMenu popupMenu = new PopupMenu(wrapper, view); popupMenu.getMenuInflater().inflate(R.menu.user_main_toolbar_add_items, popupMenu.getMenu()); popupMenu.show();
style文件如下
< style name="MyPopupStyle" parent="Widget.AppCompat.PopupMenu"> < item name="android:itemBackground"> @drawable/toolbar_item_selector< /item> < item name="android:textColor"> @color/whitesmoke< /item> < /style>
记得当时使用background属性是无效的,改成了itembackground才有了效果
而且为了使popupmenu可以显示icon,找了一种方法,并没有去查原因,仅仅是用了,代码如下
/**************************************************************************/ Context wrapper = new ContextThemeWrapper(this, R.style.MyPopupStyle); /**************************************************************************/PopupMenu menu = new PopupMenu(wrapper, view); menu.inflate(R.menu.user_main_toolbar_add_items); MenuPopupHelper menuHelper = new MenuPopupHelper(wrapper, (MenuBuilder) menu.getMenu(), view); menuHelper.setForceShowIcon(true); menuHelper.show();
【Android更改popupmenu背景并显示图标】而且官方文档好像没搜到这个类,谷歌第一条是源代码,里面有各个方法的说明,包括setForceShowIcon,
本文本来只用来自己参考的,不过可能会有人看到,还是贴出链接,可以看下
MenuPopupHelper。java
推荐阅读
- Android反编译apk并重新打包签名(Mac环境)
- 如何通过包名打开手机里的APP
- 安卓快速排序与冒泡排序
- Android-Bundle的说明和用法
- android okhttp的使用
- 将微服务连接到Eureka命名服务器
- Spring Cloud创建一个JPA存储库示例
- Spring Cloud配置JPA和初始化数据
- Spring Cloud Config Server连接到本地Git存储库