似乎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();

  

而且官方文档好像没搜到这个类,谷歌第一条是源代码,里面有各个方法的说明,包括setForceShowIcon,

本文本来只用来自己参考的,不过可能会有人看到,还是贴出链接,可以看下

MenuPopupHelper。java

Android更改popupmenu背景并显示图标的更多相关文章

  1. android:更改PagerTabStrip背景颜色,标题字体样式、颜色和图标,以及指示条的颜色

    1.更改PagerTabStrip背景颜色 我们直接在布局中设置background属性可以: <android.support.v4.view.ViewPager android:id=&qu ...

  2. Android - 安装应用(APP) 不显示图标

    装应用(APP) 不显示图标 本文地址:www.2cto.com 在启动的activity的AndroidManifest注册中,添加隐式启动的data: 删除应用图标的若干解决方案: 1.Andro ...

  3. 我的Android进阶之旅------>关于使用Android Studio替换App的launcher图标之后仍然显示默认的ic_launcher图标的解决方法

    前言 最近做了一个App,之前开发该App的时候一直以来都是默认的launcher图标启动的, 今天美工换了一个App的launcher 图标,因此在Android Studio中将默认的lanche ...

  4. Android ViewPager滑动背景渐变

    原理 总 布局为RelativeLayout或者FrameLayout,在这里我们用的是RelativeLayout.先设置背景图片,宽度和高度都 fill_parent,在设置viewpager,v ...

  5. Android设置布局背景为白色的三种方法

    一.在xml文件里可以直接设置: android:background="#ffffff" 其他颜色可以看这里;http://blog.csdn.net/yanzi1225627/ ...

  6. 从零开始学android开发- 应用程序窗体显示状态操作requestWindowFeature

    我们在开发程序是经常会需要软件全屏显示.自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示. 首先介绍一个重要方法那就是requestWindowFeat ...

  7. android Button 切换背景,实现动态按钮和按钮颜色渐变

        android Button 切换背景,实现动态按钮和按钮颜色渐变 一.添加android 背景筛选器selector实现按钮背景改变     1.右键单击项目->new->Oth ...

  8. ActionBar只显示图标不显示文字

    问题:ActionBar菜单项android:showAsAction设置为android:showAsAction="always|withText"或者android:show ...

  9. UITabBar背景、icon图标颜色、被选中背景设置以及隐藏UITabBar的两种方式

    一.对UITabBar背景和icon图标的一些设置 (1)因为直接给UITabBar设置的背景颜色显示的不纯,半透明的感觉,所以,有时候我们可以直接利用纯色的图片作为背景达到想要的效果: (2)给ic ...

随机推荐

  1. restframework 序列化补充(自定义ModelSerializerl)

    一.知识点 1.source title = serializers.CharField(source='courses.title') source用于one2one.foreginkey.choi ...

  2. 一行代码去掉Devexpress弹窗

    使用的是.net hook方法: 使用代码: using System; using System.Windows.Forms; namespace AlexDevexpressToolTest { ...

  3. 高精度算法(C/C++)

    高精度算法 (C/C++) 做ACM题的时候,经常遇到大数的加减乘除,乘幂,阶乘的计算,这时给定的数据类型往往不够表示最后结果,这时就需要用到高精度算法.高精度算法的本质是把大数拆成若干固定长度的块, ...

  4. Redis(六):list/lpush/lrange/lpop 命令源码解析

    上一篇讲了hash数据类型的相关实现方法,没有茅塞顿开也至少知道redis如何搞事情的了吧. 本篇咱们继续来看redis中的数据类型的实现: list 相关操作实现. 同样,我们以使用者的角度,开始理 ...

  5. Centos 7x 安装 Telegram MTproxy代理【完美可用】

    0x00 最近迷上了Telegram,也就是电报,觉得通过这个获取国外的新闻比较方便 可是我的VPS小机子不给力,一开始使用的Centos 6x,死活装不上去, 发现MTproxy不支持Centos ...

  6. C++对于C故有问题的改进

    C++继承了所有的C特性,并且提供了更丰富的语法和特性(OOP支持.模板支持等),并且拥有和C语言同样出色的运行效率.针对C语言的固有问题,C++做出了如下的升级: 所有变量都可以在需要使用时再定义( ...

  7. ORALCE逻辑存储结构

    ORACLE逻辑存储结构块: 数据块 他是最基础的逻辑存储单元,数据以行的形式存储到我么的数据块中 区 :多个块的集合 并且区组成了物理的数据文件 段 :(表 索引 物化视图 物化视图日志 大对象 大 ...

  8. python day01练习和作业

    习题:1.简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型编译型语言:优点:执行速度快 缺点:维护成本高,跨平台性差解释型语言:优点:维护成本低,跨平台性好 缺点:执 ...

  9. C++类中拷贝构造函数详解

    a. C++标准中提到"The default constructor, copy constructor and copy assignment operator, and destruc ...

  10. POJ_2342_树状dp

    http://poj.org/problem?id=2342 第一道树状dp,入门题,用vector构建有向图. #include<iostream> #include<cstrin ...