Toolbar 不为人知的助手,ActionMenuView

2024-06-03 12:08

本文主要是介绍Toolbar 不为人知的助手,ActionMenuView,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Toolbar 不为人知的助手,ActionMenuView

封面图来自这次长滩岛旅行。第一次出国,感受颇深,绝不是一言两语能够描述的。只有亲自体验过,才能懂得当初女教师辞职信里的那句瞬间爆红的话:“世界那么大,我想去看看。”

不久前,对 Toolbar 控件的使用写了一篇总结性的文章:Android Toolbar,你想知道的都在这里了,本文应该算是一个补充完善吧,将 ActionMenuView 的使用加入其中。

平时我们在使用 Toolbar 的时候,很少会用到 ActionMenuView 这个控件。虽然用起来很简单,但是很多伙伴并不知道他的存在,因为他的使用场景确实少见,我所能列举的也只有两个:

第一个,大家知道,Toolbar 默认将 Menu 内容摆放在右边,空间不足时溢出到 OverFlow 窗口中。比如现在有个需求,要将 Menu 的位置摆放在左边,也就是与 Title 相邻的右边,那该如何控制呢?

第二个,动态添加或者删除 Menu Item ,又该如何实现呢?当然,你也能使用 visible 属性来控制,但很显然,这不是一个很好的解决方案。

以上两个应用场景比较特殊,但也不是没有出现的可能。如果你知道 ActionMenuView 的存在的话,处理起来就很得心应手。

ActionMenuView 是将原本位于 Toolbar 或者 ActionBar 中的 Menu 内容移到自己的名下,以 ViewGroup 的姿态将一些列的 Menu Item 囊括其中,再将自己搁置于 Toolbar 容器中,这样,更方便于管理和呈现 Menu 内容。所以,原本孤立的 Toolbar 控件,就有了一个 Child,代码如下:

Toolbar 不为人知的助手,ActionMenuView

再在 Activity 文件中,将 Menu 资源文件加载到使用 findViewById() 方法获取到的 ActionMenuView 对象中:

Toolbar 不为人知的助手,ActionMenuView

至于 Menu Item 的点击事件方法 onOptionsItemSelected 无需改动,只要将 ActionMenuView 对象的点击事件设置转移即可:

Toolbar 不为人知的助手,ActionMenuView

还可以利用 getMenu() 方法获取到 Menu 对象,动态添加或删除 Menu Item,甚至加载另外一个 Menu 资源文件,比如:

mHomeAmv.getMenu().clear();

getMenuInflater().inflate(R.menu.search, mSearchAmv.getMenu());

现在有这样一个需求,设计图如下 ( 图片来源:stack overflow ) :

Toolbar 不为人知的助手,ActionMenuView

就可以利用 ActionMenuView 控制 Menu Item 的位置了。当然,这里面还需要另外几个知识点,顺便补充说明一下。

第一,Menu Item 间距问题。Item 默认的宽度是56dp ,可以利用 style 中的属性修改,并将样式设置给 Activity 主题即可,比如:

Toolbar 不为人知的助手,ActionMenuView

第二,Menu Item 图标高亮问题。当然,你可以使用两套图标,在点击时修改设置。但使用一套图标也能做到,还能减少 APK 文件大小,比如:

Toolbar 不为人知的助手,ActionMenuView

介绍完毕,这些知识点已补充至博客 Toolbar 一文中,想了解更多工具栏知识,可以查看作者博文。另外,今天是「感恩节」(每年11月份第四个星期四),感谢生命中每一个与我相识或不曾相识的人,是你们让我的生命更加丰富多彩,让我不曾后悔走过的每一步路,向着阳光,一点一点稳稳前行!

本文为头条号作者原创。未经授权,不得转载。

这篇关于Toolbar 不为人知的助手,ActionMenuView的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026944

相关文章

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

关于文章“python+百度语音识别+星火大模型+讯飞语音合成的语音助手”报错的修改

前言 关于我的文章:python+百度语音识别+星火大模型+讯飞语音合成的语音助手,运行不起来的问题 文章地址: https://blog.csdn.net/Phillip_xian/article/details/138195725?spm=1001.2014.3001.5501 1.报错问题 如果运行中报错,且报错位置在Xufi_Voice.py文件中的pcm_2_wav,如下图所示

如何使用kimi智能助手:您的智能生活小助手

Kimi智能助手是一款功能强大的AI工具,旨在帮助用户提高工作效率和生活品质。下面小编将详细介绍如何使用Kimi智能助手,涵盖其主要功能以及一些实用技巧。 一、Kimi智能助手的主要功能 多语言对话能力:Kimi擅长中文和英文的对话,可以与用户进行流畅的交流,解答用户的各类问题。智能搜索:Kimi能够快速准确地帮您找到所需信息,并提供详尽回答及信息来源。高效阅读:Kimi支持长文快速阅读和

浔川AI社宣布正式开创“浔川AI助手”——浔川AI社

这是浔川AI社的标志。 2024.6.22晚8点35分宣布,浔川AI社正式开创“浔川AI助手” 全面发展。 据浔川AI社报道称‘“浔川AI助手”内容包含全部,写作、聊天......都有。’ 让我们敬请期待!

今天遇到IQKeyboardManager的ios11 不显示toolbar上面的问题

IQKeyboardManager ios11 不显示 toolbar的文字 iOS11的UIToolbar 有一个UIToolbarContentView的子控件,但是它在view的最顶层,事件响应不了,解决办法就是手动执行一次

探索AI前沿:本地部署GPT-4o,打造专属智能助手!

目录 1、获取API_key 2、开始调用 3、openai连接异常 4、解决方法: 5、调用GPT-4o 1、获取API_key 这里就不多赘述了,大家可以参考下面这篇博客 怎么获取OpenAI的api-key【人工智能】https://blog.csdn.net/qq_51625007/article/details/137632747 2、开始调用 有了第一步的API

去水印助手,小熊录屏,OldRoll复古胶片相机

我们将带大家了解三款特色应用,软件是经过大佬处理过的,都非常的好用!今天分享给大家!如果你也喜欢这几款软件不要忘记给博主点击点赞和再看哦! 软件获取链接在链接的底部: 一键去水印助手 无论您是在各大社交平台上寻找视频无水印,还是需要处理图片中的水印烦恼,这款助手都能为您解决燃眉之急,更重要的是,一次登录即可成为终身会员,让您尽情享受无水印世界的精彩。 【资源名称】:一键去水印助手 【资源

[240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞

目录 Anthropic 发布 Claude 3.5 Sonnet AI 助手Scoket.IO 拒绝服务漏洞(CVE-2024-38355) Anthropic 发布 Claude 3.5 Sonnet AI 助手 Claude 3.5 Sonnet: 更智能、更快速、更安全的 AI 助手 一、 引言 Anthropic 发布了 Claude 3.5 Sonnet,这是其

聚观早报 | 全新哈弗H6正式上市;OPPO小布助手大改版

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 6月21日消息 全新哈弗H6正式上市 OPPO小布助手大改版 一加冰川电池即将登场 蔚来重组智驾团队 谷歌重新定义手机快充门槛 全新哈弗H6正式上市 长城全新一代哈弗H6近日正式上市,共推出5款车型,搭载1.5T和2.0T发动机,官方指导价格区

Android控件之Toolbar + DrawerLayout的使用

载请标明出处: http://blog.csdn.net/u011974987/article/details/50963495; 最近闲着没事儿,在关注一些遵循最新的Material Design设计规范的应用和效果,感觉很高大上;一直都没有去尝试过Material Design的一些新控件,很多还是不熟悉的,所以最近就写Demo 来熟悉下这些控件的使用,接下来使用官方支持库来快速实现