BruceLee
DocumentDiscussion

导航

 

导航

一致的导航是一个整体的用户体验的必不可少的组成部分。与用户行为不一致和出乎用户意料的操作会让用户感到很反感。 Android 3.0的显着变化是全局导航行为。亲切地遵循返回与向上导航的设计规范,这将使你的应用程序的导航变为可预测和可靠的。

Android 2.3和更早的版本在应用程序里面的导航是依赖于系统的硬“返回”按钮。在Android3.0中引入的动作条,第二种导航机制出现了---“向上”按钮,它是一个图标或向左的符号。

clip_image002

向上与返回

向上按钮用于应用程序中基于屏幕层次之间的导航关系。举例来说,如屏幕是显示项目清单,选择一个项目需要显示屏幕B(更详细介绍了该项目),然后屏幕B应该提供一个按钮来返回到屏幕A.

如果屏幕是一个应用程序最顶层(即应用程序主页),就不应该出现一个向上按钮。

系统的“后退”导航按钮,是按用户最近访问过的历史屏幕的时间先后顺序编排的。它一般是根据屏幕上的时间之间的关系,而不是应用程序的层次结构来返回的。

以前查看过的屏幕也是当前屏幕的父层次,按返回按钮与向上按钮有相同的结果。然而, “向上”按钮可以确保用户仍然在你的应用程序中,不同的是,“返回”按钮可以使用户返回到主屏幕,甚至是一个不同的应用程序。

clip_image004

“返回”按钮还支持一些并无直接关系到屏幕到屏幕的导航行为:

l 消除浮动窗口(对话框,弹出窗口)

l 消除上下文操作栏,移除选定项目的高亮

l 隐藏屏幕上的键盘(IME)

应用程序中使用导航

多个入口点导航到屏幕的

有时一个屏幕在应用程序结构中没有一个严格的位置,并且能从多个入口点到这个屏幕,如设置屏幕,在您的应用程序中需要从任何其它屏幕可以达到设置屏幕。在这种情况下,应该选择“向上”按钮返回到引用它的屏幕,这等同于“返回”按钮。

更改屏幕视图

更改屏幕视图的选择不会改变“向上”与“返回”行为:屏幕仍然在应用程序的层次结构的相同位置,并没有创建新的导航历史。

例如下面一些视图的改变:

l 使用标签或左、右拨动切换视图

l 使用下拉切换视图(又名倒塌标签)

l 筛选列表

l 排序列表

l 更改显示特性(如缩放)

兄弟屏幕之间导航

当您的应用程序支持选择列表的项目之一到这些项目的详细视图的导航,它往往需要支持 到从列表的其中一个项中去到列表顺序中的另一个项。例如,在Gmail中,在同一个收件箱中通过向左或向右滑动很容易实现从一个会话到一个新的或旧的视图。正如更改屏幕视图时,这种导航没有改变的“向上”和“返回”的行为。

clip_image006

但是也有值得注意的例外发生,浏览相关细节的视图没有和指定的列表绑在一起,例如,当浏览应用市场里同一开发商的应用程序,或相同的艺术家的专辑。在这种情况下,每一个链接都创造了历史,导致“返回”按钮贯穿用户每个先前查看过的屏幕。应该使用“向上”按钮绕过这些相关的屏幕和导航,直接到最近浏览过视图的上一级容器屏幕。

clip_image007

你完全有能力基于你对详情视图的了解,使去到上一级的操作行为更聪明便捷。从上面的例子扩展应用商店,想象用户最后是从一本书的详细视图导航去观看同名书改编的电影。在这种情况下,“向上”按钮可以不通过先前用户的浏览返回到容器屏幕(电影)。

clip_image009

应用程序通过主屏幕小部件和通知导航

可以使用主屏幕上的小部件或通知帮助用户直接导航到你的应用程序层次结构的屏幕深处。例如,Gmail的收件箱小工具和新邮件通知都可以跳过收件箱屏幕,直接到一个会话视图。

按下面两种情况处理“向上”按钮:

l 当直接通过一些有目的的操作,从另一个应用程序导航到你的应用程序的层级结构中时,“向上”按钮应该导航到该屏幕。

l 否则,导航到应用程序在最上面(“HOME”)屏幕。

在“返回”按钮的情况下,应该确保导航更可预测的,这得通过插入任务的返回堆栈,堆栈包含完整的向上导航到到应用程序最顶层屏幕的路径。这使用户忘记了在退出之前是如何进入应用程序并导航到应用程序的最上面的屏幕。

作为一个例子,Gmail的主屏幕上的小部件有一个按钮,可以直接定位到撰写新邮件的屏幕。在撰写新邮件屏幕“返回”要到用户的收件箱,并从那里继续“返回”到首页。

clip_image011

间接的通知

当您的应用程序需要同时提交多个事件的信息,它可以使用一个单一的通知,将用户定向到一个间质屏幕。此屏幕总结了这些活动,并深入到应用程序为用户提供了路径。这种风格通知被称为间接的通知。

与标准的(直接)通知,按返回间接通知的间质屏幕,用户返回到触发点的通知,没有额外的屏幕插入后退堆栈。一旦用户进入应用程序从它的质屏幕上,向上和向后的行为为标准的通知,如上所述:导航应用程序,而不是返回到间质内。

例如,假设一个用户在Gmail中收到从日历来的间接通知。触摸该通知打开了间质的屏幕(日历),那里显示多个不同的事件提醒。从间质屏幕触摸“返回”返回到用户的Gmail。用从间质页面触摸一个事件提醒可以得到提醒事件的详细信息,为了显示提醒事件的详细信息会进入日历的应用程序。从事件的详细信息,“向上”和“返回”导航是到日历的顶级视图。

clip_image013

弹出式通知

弹出式提示通知绕过通知的发起者,而不是直接出现在用户面前。它们是很少使用,而且应该保留给必需使用的场合,这种场合是必须及时的响应并中断用户上下文。例如,用户聊天中提醒有朋友邀请视频聊天的提醒是使用这种风格,此邀请后几秒钟后自动失效。

从导航行为来看,弹出式通知紧跟直接一个直接通知的间质屏幕的行为。“返回”按钮会销毁弹出通知。如果用户浏览到通知的并进入到相应的应用程序,在应用程序内部,“向上”和“返回”按钮遵循标准的通知规则。

clip_image014

应用程序之间导航

Android系统的一个基本优势是能够用应用程序来激活另一个应用程序,让用户能够直接从一个应用程序导航到另一个。例如,在需要拍照时可以启动一个相机应用程序,“返回”会返回引用它的照片应用程序。这对开发人员是一个巨大的收益,开发人员可以很容易地利用从其他应用程序的代码,用户也会享受同一应用的一致性体验。

要理解应用程序到应用程序的导航,重要的是要了解Android框架,下面讨论一些框架行为。

活动、任务和意图

在Android中,活动是一个应用程序组件,它定义了屏幕上的信息和所有和用户关联的可以执行的动作。你的应用程序是活动的集合,这包括你新创建的活动和从其他应用程序中重新使用的活动。

任务是完成一个目标所需要的用户活动序列。一个单独的任务能保证一个应用程序活动,或者可以从一定数量的应用程序规划出活动。

意图是一个机制,这个机制是一个应用程序发出信号后想另一个应用程序协助完成一个动作。一个应用程序的活动可以表明他们作出回应的意图。对于常见的意图,如“共享”,用户可以安装许多应用程序,可以实现“共享”这一要求。

例如:在应用程序之间支持共享的导航

要了解活动、任务和意图如何一起工作,考虑应用程序如何允许用户使用其他应用程序共享内容。例如,商店应用程序从首页开始新的任务A(见下图)。浏览播放存储和触摸促销书来看它的细节后,用户仍然在相同的任务,通过加入活动来扩展这个任务。触发“共享”动作弹出提示一个对话框,列出从不同的应用来的每项活动,这些活动是可以处理已登录用户的共享意图。

clip_image016

当用户选择通过Gmail “共享”,Gmail的撰写活动被增加到任务A,作为任务A的延续而没有新的任务被创建。如果Gmail在后台运行有它自己的任务,那个这个后台任务会受到影响。

从撰写活动发送消息或触摸“返回”按钮,返回介绍书详细内容的活动。继续的返回将导航到商店,一直会到达首页。

clip_image018

然而,通过触摸撰写活动的“向上”,用户的意图还是想在Gmail里。 Gmail的会话列表活动出现,并为它创建一个新的任务B。新的任务总是起源于首页,所以从会话列表按“返回”会回到首页。

clip_image020

任务A依然存在与后台,用户可以稍后再返回(例如,通过最近的屏幕)。如果Gmail已经有自己在后台运行的任务,它会被替换成任务B-前一个上下文是被遗弃。

多窗格布局

为Android写一个应用程序时,请记住,Android设备在许多不同的屏幕尺寸和类型。请确保您的应用程序始终如一地提供一个均衡和美观的布局,这就需要根据不同尺寸和屏幕方向调整其内容。

要实现这一点,Panels(面板)是一个最好的方式。面板允许将多个视图合成一个复合视图,当水平方向有没有可利用的空间时,切分内容,分到不同的视图。

作者:Bruce Lee
出处:http://www.cnblogs.com/BruceLee521
本博原创文章版权归博客园和本人共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出作者名称和原文连接,否则保留追究法律责任的权利。
posted on 2013-03-20 09:30  Bruce Lee  阅读(4731)  评论(1编辑  收藏  举报