一:先写一个自定义的菜单布局

这个布局可以根据业务需要任意写

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="10dip"android:paddingRight="10dip"android:gravity="center"android:text="收藏"android:drawableLeft="@mipmap/me_collect"android:drawablePadding="3dp"android:textColor="@color/title_color"android:clickable="true" />

二:在menu的item中引用该布局

这了用到了app:actionLayout来指定自定义菜单布局,需要注意的是必须是app:actionLayout,而不应该是android:actionLayout,否则onCreateOptionsMenu方法中的getActionView()方法会返回null。

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><!--1:actionLayout用于指定你自定义的菜单布局;2:必须是app:actionLayout,而不应该是android:actionLayout否则onCreateOptionsMenu方法中的getActionView()方法会返回null--><item android:id="@+id/flavor"android:title=""app:showAsAction="always"app:actionLayout="@layout/head_flavor_menu" />
</menu>

三:onCreateOptionsMenu(Menu menu)中引用该布局

这一步的目的是将你自定义的菜单当成普通菜单处理,通过给自定义的菜单布局设置单击事件,让其在单击时执行onOptionsItemSelected(MenuItem item),从而让其像普通的Menu item一样在onOptionsItemSelected中处理点击事件就可以了。

    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.head_flavors, menu);final MenuItem item = menu.findItem(R.id.flavor);
//        getActionView()返回你自定义的菜单布局,设置单击事件的目的是,让其单击时执行onOptionsItemSelected,从而只需统一在onOptionsItemSelected处理即可item.getActionView().setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {onOptionsItemSelected(item);}});return super.onCreateOptionsMenu(menu);}

四:没有第四步了!

由第三步可知,onOptionsItemSelected(MenuItem item) 方法无需做任何改变。

五:最后看看效果

自定义menu菜单布局相关推荐

  1. Android自定义menu菜单布局

    一:先写一个自定义的菜单布局 menu_gallery.xml: <?xml version="1.0" encoding="utf-8"?> &l ...

  2. android 自定义menu菜单,android 自定义menu菜单样式

    Android系统中的menu样式不是太好,可以自定义.运行效果 CustomActivity.java继承Activity.java 在此文件中实现了不同于系统的dialog import java ...

  3. android 自定义menu背景,Android编程实现自定义系统菜单背景的方法

    本文实例讲述了Android编程实现自定义系统菜单背景的方法.分享给大家供大家参考,具体如下: 不多说,上图,见代码. package lab.sodino.menutest; import andr ...

  4. html 右键菜单 插件,Script Menu:自定义右键菜单

    Script Menu的开发背景 对于网页上的右键菜单用户可能再熟悉不过了,常见的右键菜单有复制.粘贴.刷新.另存为.查看网页源代码等,但是这些右键菜单都是chrome自己提供或者其他插件的菜单,你有 ...

  5. android 自定义menu 背景颜色,Android中设置Menu菜单的文字颜色为白色

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 开发者交流裙: 188168040 Android中设置Menu菜单的文字颜色为白色,一般情况下,Android中Menu菜单的title文字颜色为黑色, ...

  6. 自定义Android菜单背景

    本文来自:安卓航班网 如何自定义Android菜单背景呢? 默认的情况下Android系统的菜单是白色的,下面的例子可以通过自定义的xml布局实现个性化的menupublic class MenuEx ...

  7. Android项目开发实战—自定义左右菜单

    Android实现自定义左右菜单 功能描述: 在左中右三个区域分别承载三个不同的view,把它全部添加进来,而我们实现左右菜单,就是来控制当前显示的是哪一部分:如果显示中间菜单,就把中间菜单呈现在用户 ...

  8. android自定义侧滑菜单slidmenu

    实现上主要就是一个自定义的MySlidView,在这个MySlidView里边去加载两个你要显示的View(mMenuView, mSlidView),即一个是滑动之后,左侧的mSlidView,另一 ...

  9. powerpoint编程_如何自定义PowerPoint讲义布局

    powerpoint编程 PowerPoint handouts are a great resource to distribute to your audience so that they ca ...

最新文章

  1. Java面试题之多线程同步和互斥有几种实现方法,都是什么?
  2. 集合论——二元关系的表示方法,特殊的二元关系及关系的运算
  3. kali 树莓派 android,【原】树莓派安装KALI LINUX的手记
  4. 【转】Java学习---Java Web基础面试题整理
  5. java元婴期(18)----java进阶(spring(2)----DI(依赖注入)基于注解的IOC与DI配置properties)
  6. 最新最全的用户画像系统详解,还可免费试用哦!
  7. fluent p1模型_Fluent辐射传热模型理论以及相关设置-转载 于 作者:Libo Chen
  8. ps自定义形状工具_【福利】3000款PS自定义形状免费打包下载
  9. linux的for循环怎么写,Linux命令:for循环写法总结
  10. VMware SDS 什么是VSAN?? VSAN的体系结构 (含VSAN 6.0、6.1版的新内容)
  11. 雷蛇在天猫618大爆发,雷军第二天就找其创始人取经
  12. Live2D Cubism Editor Pro v4.1.00 卡通动画模型制作工具中文版
  13. 计算机基础知识题二,计算机基础知识题库(五)
  14. 关于计算机的英语作文初中,computer初中英语作文范文
  15. 开源的微信公众号管理工具
  16. 如何利用SUM函数合并单元格求和
  17. matlab 图像二值化 后0、1像素的个数统计
  18. 从键盘上输入一个字符,判断并输出是控制符、数字字符、大写字母、小写字母或是其他字符
  19. 人人都是产品经理之用Axure制作微信主页原型图
  20. SDNU 1268.超超爱链表

热门文章

  1. 网站访问突然变慢一系列解决思路
  2. 如何将rmvb视频文件制作成DVD视频光盘
  3. dita编写工具有哪些_我们已经有了美好的事情,还有其他一些原因不编写内部操作工具...
  4. html转换为asp格式化,asp中格式化HTML函数代码 SDCMS加强版
  5. 关于SICK公司的LMS511返回数据的数据结构说明
  6. 哪款蓝牙耳机性价比高?南卡和华为蓝牙耳机对比测评
  7. 硬件电路工程师最全入门工作指南!
  8. 《紫川》之紫川经典语录
  9. 通辽有计算机二级考点吗,2018通辽高考考点考场安排及设置
  10. 深入浅出接口幂等设计