Android menu属性详解

158 阅读1分钟

转自:blog.csdn.net/n3562141/ar…

menu的属性展示

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@[+][package:]id/resource_name"
          android:title="string"
          android:titleCondensed="string"
          android:icon="@[package:]drawable/drawable_resource_name"
          android:onClick="method name"
          android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]
          android:actionLayout="@[package:]layout/layout_resource_name"
          android:actionViewClass="class name"
          android:actionProviderClass="class name"
          android:alphabeticShortcut="string"
          android:numericShortcut="string"
          android:checkable=["true" | "false"]
          android:visible=["true" | "false"]
          android:enabled=["true" | "false"]
          android:menuCategory=["container" | "system" | "secondary" | "alternative"]
          android:orderInCategory="integer"/>
    <group android:id="@[+][package:]id/resource name"
           android:checkableBehavior=["none" | "all" | "single"]
           android:visible=["true" | "false"]
           android:enabled=["true" | "false"]
           android:menuCategory=["container" | "system" | "secondary" | "alternative"]
           android:orderInCategory="integer">
        <item/>
    </group>
    <item>
        <menu>
          <item/>
        </menu>
    </item>
</menu><



menu的属性解释



 
 

android:id 

定义资源ID,它是个唯一值,使用“@+id/name”格式可以给这个菜单项创建一个新的资源ID,“+”号指示要创建一个新的ID。

android:title 

字符串资源,它用字符串资源或原始的字符串来定义菜单的标题。

android:titleCondensed 

字符串资源。它用字符串资源或原始的字符串来定义一个简要的标题,以便在普通的标题太长时来使用。

android:icon 

可绘制资源,它定义了一个菜单项所要使用的图标。

android:onClick 

方法名。在这个菜单项被点击时,会调用这个方法。在Activity中,这个方法必须用public关键字来声明,并且只接受一个MenuItem对象,这个对象指明了被点击的菜单项。这个方法会优先标准的回调方法:onOptionsItemSelected()。 

警告:如果要使用ProGuard(或类似的工具)来混淆代码,就要确保不要重名这个属性所指定的方法,因为这样能够破坏功能。 

这个属性在API级别11中被引入。

android:showAsAction 

关键词。它定义这个项目作为操作栏中的操作项的显示时机和方式。只用Activity包含了一个ActionBar对象时,菜单项才能够作为操作项来显示。这个属性在API级别11中被引入,有效值如下:  

值 说明 

ifRoom 如果有针对这个项目的空间,则只会把它放到操作栏中 

withText 操作项也要包含文本(通过android:title属性来定义的)。可以把这个值与其他的Flag设置放到一起,通过管道符“|”来分离它们。 

never 这个项目不会放到操作栏中 

always 

始终包这个项目放到操作栏中。要避免使用这个设置,除非在操作栏中始终显示这个项目是非常关键的。设置多个项目作为始终显示的操作项会导 

致操作栏中其他的UI溢出。 

icollapseActiionView 它定义了跟这个操作项关联的可折叠的操作View对象(用android:actionViewLayout来声明)。这个关键词在API级别14中被引入。

android:actionViewLayout 

它引用一个布局资源,这个布局要用于操作窗口。更多的信息请参照“操作栏”开发指南。这个属性在API级别11中被引入。

android:actionViewClass 

类名。它定义了操作窗口要使用的View对象的完整的类名。例如,“android.widget.SearchView”说明操作窗口要使用的SearchView类。 

警告:如果要使用ProGuard(或类似的工具)来混淆代码,就要确保不要重名这个属性所指定的方法,因为这样能够破坏功能。 

 这个属性在API级别11中被引入。

android:actionProviderClass





类名,它是操作项目所使用的ActionProvider类的完整的类名。例如,“android.widget.ShareActionProvider”说明要使用 

ShareActionProvider类。 

警告:如果要使用ProGuard(或类似的工具)来混淆代码,就要确保不要重名这个属性所指定的方法,因为这样能够破坏功能。 

这个属性在API级别14中被引入。

android:alphabeticShortcut 

字符,定义一个字符快捷键

android:numericShortcut 

数字值,定义一个数字快捷键

android:checkable 

布尔值,如果菜单项是可以复选的,那么就设置为true。

android:checked 

布尔值,如果复选菜单项默认是被选择的,那么就设置为true。

android:visible 

布尔值,如果菜单项默认是可见的,那么就设置为true。

android:enabled 

布尔值,如果菜单项目默认是可用的,那么就设置为true。

android:menuCategory 

关键词。它的值对应了定义菜单项优先级的CATEGORE_*常量,有效值如下: 

值 说明 

Container 菜单项是容器的一部分 

system 菜单项是由系统提供的。 

secondary 提供给用户的辅助选择的菜单项(很少使用) 

alternative 基于当前显示的数据来选择操作的菜单项。

android:orderInCategory 

整数值,它定义菜单项在菜单组中的重要性的顺序。




Group



<group> 

它定义了一个菜单组(它是一个具有共同特征的菜单项的组合,如菜单项的可见性、可用性或可复选性)。它要包含多个<item>元素,而且必须是<menu>元素的子元素。




属性(ATTRIBUTES):


 
 

android:id 

资源ID。它是资源的唯一标识。使用“@+id/name”格式给菜单项创建一个新的资源ID。“+”号指示应该给这个元素创建一个新的资源ID。

android:checkableBeharior 

关键词。针对菜单组的可复选行为的类型。有效值如下: 

值 说明 

none 没有可复选性 

all 组内的所有的项目都被复选(使用复选框) 

single 仅有一个项目能够被复选(使用单选按钮)

android:visible





布尔值,如果菜单组是可见的,就设置为true。

android:enabled 

布尔值,如果菜单组是可用的,就设置为true。

android:menuCategory 

关键词。它的值对应了Menu类的CATEGORY_*常量,定义了菜单组的优先级。有效值如下:  

值 说明 

container 菜单组是容器的一部分 

system 菜单组是由系统提供的。 

secondary 提供给用户的辅助选择的菜单组(很少使用) 

alternative 基于当前显示的数据来选择操作的菜单组。

android:orderInCategory 

 整数值,它定义了分类中菜单项目的默认顺序。