第三部分:Android 应用程序接口指南---第二节:UI---第三章 菜单

浏览:
字体:
发布时间:2013-12-20 16:18:51
来源:

第3章 菜单

在许多不同类型的应用中,菜单通常是一种用户界面组件。为了提供给用户提供熟悉且一致的体验,你需要使用菜单API来展示用户动作和你Activity中的其他选项。
 
从安卓3.0系统(API level 11)开始,安卓设备已经不再需要提供专用的菜单按键。基于这种变化,安卓应用需要远离原来所依赖的传统6选项菜单盘,取而代之的是提供一个动作条来显示普通用户的动作。虽然设计方案和用户使用菜单选项的方式已经改变,但是从语义上定义的一套动作和选项仍然是基于菜单API的。这份指导书将介绍在所有版本的安卓系统中如何去创建三个基本类型的菜单和动作:
 
1. 选项菜单和动作条
 
选项菜单对于一个应用的菜单项来说是首要的。你放置其中的动作一般是可以影响整个应用的,例如“搜索”、“写邮件”和“设置”。假如你为2.3或者更低版本的安卓系统开发应用,那么用户可以通过点击菜单按钮来显示选项菜单盘。在安卓3.0或者更高的系统中,选项菜单中的选项作为屏幕上动作项和溢出的选项采用动作条显示。从安卓3.0开始,菜单按键是不被赞成的(一些设备一个也没有),所以你需要改为使用动作条来提供动作和其他选项的入口。
 
2. 上下文菜单和上下文的操作模式
 
上下文菜单是一种浮动的菜单,是在当用户在一个元件上执行长按动作时显示的。当开发平台为安卓3.0或者更高的时候,你需要使用上下文操作模式来使所选的内容产生动作。这种模式显示的动作项会影响到在屏幕顶部条上选定的内容,并允许用户选择多项。
 
3. 弹出窗口菜单
 
弹出窗口菜单显示一列被锚记为调用菜单列表的列表项。它很好的提供了一个涉及到具体内容或者提供一个命令的第二部分选项的溢出操作。在弹出菜单中的动作不会直接影响到相应的内容,这就是上下文操作所想要的。
 
3.1 在XML中定义菜单
 
针对所有的菜单类别,安卓系统都提供了一个标准的XML格式来定义菜单项。你可以在一个XML菜单资源中定义一个菜单和它的所有选项,取代了在activity代码中建立菜单。你可以接着在你的活动中或者代码段中扩展菜单资源(载入它作为一个菜单对象)。
 
使用菜单资源是一个很好的惯例,主要有几个原因:
 
◆它更容易在XML中形象化菜单结构。
 
◆它把菜单的内容从你应用的行为代码中脱离出来。
 
◆它允许你创建交替的菜单结构以适应不同平台版本,屏幕大小,和其他利用应用资源框架的结构。
 
定义一个菜单,需要在你项目的res/menu/目录下创建一个XML文件以及使用下面这些元件创建菜单:
 
<menu>
 
定义一个菜单作为菜单项的容器。<menu>必须作为文件的根结点,这样才能容纳一个或多个<item>和<group>元素。
 
<item>
 
创建一个在菜单中表示一个单独的选项的菜单项。这个元素可能需要包含<menu>网来创建一个子菜单。
 
<group>
 
<item>元件中可选且不可见的容器。它允许你去把菜单项归类,所以它们可以分享特性例如激活状态和可视状态。
 
这里是一个命名为 game_menu.xml 的菜单实例,如代码清单3-1所示:
 
 
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/new_game"
          android:icon="@drawable/ic_new_game"
          android:title="@string/new_game"
          android:showAsAction="ifRoom"/>
    <item android:id="@+id/help"
          android:icon="@drawable/ic_help"
          android:title="@string/help" />
</menu>
 
 
 
代码清单3-1
 
<item>元件支持多种属性,你可以用来定义一个项的样式和行为。菜单上的选项包含了以下属性:
 
android:id
 
菜单项唯一的的ID资源,当用户选中这个选项时允许应用通过这个ID来识别这个菜单项。
 
android:icon
 
索引一个图片资源作为该项的图标。
 
android:title
 
索引一个字符串作为该项的标题
 
android:showAsAction
 
载明该项作为一个行为项什么时候和怎样显示在动作条中。
 
这些是你需要使用的最重要属性,但是还有更多可用的属性。
 
你可以通过增加一个<menu>元素作为<item>的子项,给任意菜单的项增加子菜单(除了子菜单本身以外)。当你的应用有大量的功能被组织成主题形式,例如电脑应用程序的菜单栏的选项(文件,编辑,查看等等)时子菜单是非常有用的。
 
如代码清单3-2所示:
 
 
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/file"
          android:title="@string/file" >
        <!-- "file" submenu -->
        <menu>
            <item android:id="@+id/create_new"
                  android:title="@string/create_new" />
            <item android:id="@+id/open"
                  android:title="@string/open" />
        </menu>
    </item>
</menu>
 
 
 
>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();