Android系统里面有3种类型的菜单:options menu,context

menu,sub menu。

一、options

menu

按Menu键就会显示,用于当前的Activity。

它包括两种菜单项:

因为options menu在屏幕底部最多只能显示6个菜单项,这些菜单项称为icon menu ,icon

menu只支持文字(title)

以及icon,可以设置快捷键,不支持checkbox以及radio控件,所以不能设置checkable选项。

而多于6的菜单项会以“more” icon menu来调出,称为expanded menu 。它不支持icon,其他的特性都和icon

menu一样。

在Activity里面,一般通过以下函数来使用options

menu:

Activity::onCreateOptionsMenu (Menu

menu)   创建options

menu,这个函数只会在menu第一次显示时调用。

Activity::onPrepareOptionsMenu (Menu

menu)  更新改变options

menu的内容,这个函数会在menu每次显示时调用。

Activity::onOptionsItemSelected (MenuItem

item) 处理选中的菜单项。

二、context

menu

要在相应的view上按几秒后才显示的,用于view,跟某个具体的view绑定在一起。

这类型的菜单不支持icon和快捷键。

在Activity里面,一般通过以下函数来使用context

menu:

Activity::registerForContextMenu(View view)

为某个view注册context menu,一般在Activity::onCreate里面调用。

Activity::onCreateContextMenu(ContextMenu

menu, View v, ContextMenu.ContextMenuInfo menuInfo) 创建context

menu,和options menu不同,context meun每次显示时都会调用这个函数。

Activity::onContextItemSelected(MenuItem item)

处理选中的菜单项。

三、sub menu

以上两种menu都可以加入子菜单,但子菜单不能嵌套子菜单,这意味着在Android系统,菜单只有两层,设计时需要注意的。同时子菜单不支持icon。

四、group和item常见属性的说明

1、

表示在它里面的在同一group。相关属性包括:

id :group id

menuCategory :对应 常量Menu

CATEGORY_*  —

定义了一组的优先权,有效值:container,system,secondary,和alternative

orderInCategory

:定义这组菜单在菜单中的默认次序,int值

checkableBehavior

:这组菜单项是否checkable。有效值:none,all(单选/单选按钮radio

button),single(非单选/复选类型checkboxes)

visible :这组菜单是否可见 true or

false

enabled :这组菜单是否可用,true or

false

2、

菜单项,可以嵌入

id :  item

id

menuCategory :

用来定义menu类别

orderInCategory :

用来定义次序,与一个组在一起(Used to define the order of the item, within a

group)

title : 标题

titleCondensed :标题摘要,

当原标题太长的时候,需要用简短的字符串来代替title

icon : icon 图标

alphabeticShortcut :

字母快捷键

numericShortcut

:数学快捷键

checkable :是否为checkbox, true

or false

checked :是否设置为checked状态,true

or false

visible : 是否可见, true or

false

enabled :是否可用,true or

false

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐