菜单是为了增加更多的功能,不占用屏幕的空间。Android中菜单类型有三类,选项菜单(OptionMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu),下面分别详细介绍这些菜单。

选项菜单(OptionMenu)

① 创建选项菜单:重写Activity的onCreateOptionMenu(Menu menu)方法。

-设置菜单项可用代码动态设置menu.add();

-还可以通过xml设置MenuInflater.inflate();

②设置菜单点击事件:onOptionsItemSelected();

③菜单关闭后发生的动作:onOptionMenuClosed(Menu menu);

④选项菜单显示之前会调用,可以在这里根据需要调整菜单:onPrepareOptionsMenu(Menu menu);

⑤打开后发生的动作。 onMenuOpened(int featureId,Menu menu);

方法一:通过xml设置菜单(res/menu/menu.xml)

[html]  view plain  copy

标签的属性含义解释:

属性名

作用

menuCategory

设置菜单项的种类。有四个可选值:Container、system、secondary、alternative。通过menuCategory属性可以控制菜单项的位置。

orderInCategory

同类菜单的排列顺序,为整数值,值越大显示越靠前。

titleCondensed

菜单项的短标题。当菜单文字太长时显示这个

alphabeticShortcut

菜单项的字母快捷键。

showAsAction

Never:总是显示在移除菜单中。

Always:显示在ActionBar上。

ifRoom:如果actionBar空间足够就显示在ActionBar上。

withText:默认格式如果是含有文字和图表的话,只显示图标,使用ifRoom|withText可以显示图标和文字。

collapseActionView:

<item android:id=”@+id/menu_search”
       android:title=”@string/menu_search”
       android:icon=”@drawable/ic_menu_search”

          android:showAsAction=”ifRoom|collapseActionView”

           android:actionViewClass=”android.widget.SearchView” />

android:showAsAction属性也可包含“collapseActionView”属性值,这个值是可选的,并且声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。否则,这个操作视窗在默认的情况下是可见的,并且即便在用于不适用的时候,也要占据操作栏的有效空间。

参考链接:http://blog.csdn.NET/think_soft/article/details/7370686

标签的作用是可以进行整组操作,把一些具有相同操作的菜单放到一个组内。

在Activity里加载菜单

[java]  view plain  copy

  1. @Override

  2. public boolean onCreateOptionsMenu(Menu menu) {

  3. // Inflate the menu; this adds items to the action bar if it is present.

  4. getMenuInflater().inflate(R.menu.menu, menu);

  5. return true;

  6. }

方法二:通过代码添加menu

[java]  view plain  copy

  1. @Override

  2. public boolean onCreateOptionsMenu(Menu menu) {

  3. //调用这个方法设置图标的可见性

  4. setIconVisible(menu);

  5. /*

  6. * add()方法的四个参数,依次是:

  7. * 1、组别,如果不分组的话就写Menu.NONE,

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

总结

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的Android开发中高级必知必会核心笔记,共计2968页PDF、58w字,囊括Android开发648个知识点,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。


以上分享【Android开发中高级必知必会核心知识笔记】七大模块整套学习资料均免费分享,需要的小伙伴,我已经上传到GitHub了,大家自取就可以了。白嫖可以,别忘了给我点个关注哈。

【Android开发中高级必知必会核心知识笔记】

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。

虽然面试失败了,但我也不会放弃入职字节跳动的决心的!建议大家面试之前都要有充分的准备,顺顺利利的拿到自己心仪的offer。
到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。

虽然面试失败了,但我也不会放弃入职字节跳动的决心的!建议大家面试之前都要有充分的准备,顺顺利利的拿到自己心仪的offer。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐