Android系统UI交互控件ActionBar初探

过年期间,Google正式宣布取消Android系统中MENU键的使用,也就是基于Android 4.0系统的手机都应没有MENU这一固定按键。这无疑是个变革性的改动,在我眼中,这似乎把Android较iOS交互的一处优势砍掉了。

Google用Action Bar作为MENU的替代,而又强调Action Bar不是MENU,我理解Google的意思,是想用一种全新的模式理解这一界面操作控件。相信Google是做足了用户测试才做此决策,我对测试结果和解释比较好奇。

这里把Android Design网站上官方关于Action Bar的信息翻译一下,一方面作为将来Android app改版前的学习,另一方面,希望深入了解Google改用Action Bar的初衷。

什么是Action Bar?

Action Bar被认为是新版Android系统中最重要的交互元素,在程序运行中一直置于顶部,主要起到的作用在于:

  • 突出显示一些重要操作(如“最新”、“搜索”等)

  • 在程序中保持统一的页面导航和切换方式

  • 将使用频率低的功能放在Action overflow中,节省页面空间

  • 一个固定区域显示程序标示

Action Bar分成四个区域:

  1. 程序图标:可显示软件icon,也可用其他图标代替。当软件不在最高级页面时,图标左侧会显示一个左箭头,用户可以通过这个箭头向上导航。

  2. 视图切换:当程序通过不同的视图方式(Views)展现信息时,这部分区域可以让用户在不同视图间切换。

  3. 功能按钮:这个放最重要的软件功能,放不下的按钮就自动进入Action overflow了。

  4. Action overflow

屏幕旋转及不同分辨率适配

Action Bar可拆分成多行,形成split action bars,来适应不同分辨率,拆分后一般包含三个部分:

  1. 主要Main action bar:用户可以通过main action bar导航至上一级,因此这个操作条是必须的;

  2. 顶部Top bar:当页面上有不同的内容视图时,可在这个条上使用TAB或spinner下拉菜单的形式切换;

  3. 底部Bottom bar:要展现更多操作和功能,在页面最下端排列。

关于上下文操作条

Contextual Action Bar (CAB) 是在一些特定页面操作下,短暂叠在原有action bar上面的控件,经常用在对所选文字和数据进行相关操作时,从性质上看,比较像右键弹出菜单,也就是对所选区域的可选操作。

Action Bar包含元素

Tabs,不多说了,见图

可左右滑动的tabs:可滑动的tabs条独占一行,宽度为整个屏幕宽度;当你有大量需要切换的项目或不确定多少项目时使用。

Spinners下拉条

官方给出使用spinner而不用tab的情况:

  • 当不希望tab占据太多页面竖直方向上的空间

  • 当认为用户不需要经常在项目之间切换时

操作按钮

Google还在官方介绍上给出了一种给功能按钮排序提供依据的FIT模式,如果下面任何一项适用,则把该按钮放在action bar上是合适的,否则放在overflow中即可。

F – Frequent 高频

  • 当用户在这个页面时,是否10次中至少有7次会使用这个按钮?

  • 用户是否通常要连续使用很多次?

  • 如果每次使用该功能都要多一步操作,会不会很繁琐?

I – Important 重要

  • 你是否希望每个用户都能发现这个功能,或者因为它很酷或者是你的卖点?

  • 你是否认为当需要用到这个按钮时,应该很容易触及?

T – Typical 典型

  • 在相似的软件中,这个功能是不是通常是的最重要操作?

  • 在上下文环境下,如果这个操作按键被埋在overflow中,用户会不会惊讶?

下面的链接里包含一些系统自带操作的图标素材,针对不同屏幕分辨率,可以使用在Holo Light和Holo Dark主题中;另外包括图标的Adobe Illustrator源文件可供自行修改。

Download the Action Bar Icon Pack

Action overflow

Action overflow中存放并不会频繁用到的操作。按照官方网页上的说法,“Overflow图标仅显示在没有MENU硬按键的手机上,而对于有MENU键的手机,overflow图标是不显示的,当用户点击MENU按键时弹出。”这样的说法比较蹊跷,似乎和Google敦促手机厂商及软件开发商取消MENU的行为不相匹配。

Action bar上可以放下多少操作按钮?

如果操作按钮和软件标题等放在一排,放按钮的空间只能最多占用一半空间,如果按钮采用屏幕底部的整行action bar则可以使用整个屏幕宽度。

屏幕宽度值Density-independent Pixels(dp)决定可以放置的图标数:

  • 少于360 dp = 2个图标

  • 360-499 dp = 3个图标

  • 500-599 dp = 4个图标

  • 多于600 dp = 5个图标

图中最后一列中的“o”表示一个操作按钮,“=”代表overflow图标

分享功能

当软件中需要对内容进行分享,比如照片、视频,可以在action bar上使用share action provider,它会自动显示最常用到的一个分享按钮和可以下拉的更多分享选项。

最后,原文:http://developer.android.com/design/patterns/actionbar.html