(三)高级篇____7、设计高效的导航——提供上级和临时的导航

原文链接:http://docs.eoeandroid.com/training/design-navigation/ancestral-temporal.html 
--Snowxwyo 2013年3月7日 (四) 16:43 (CST)

目录

 [隐藏

提供祖传式的(Ancestral)和临时性的(Temporal)导航-Providing Ancestral and Temporal Navigation

现在,用户已经可以按着应用的层级深入地导航到应用的各个屏幕,我们需要提供一个可以让用户按层级向上导航回父辈或是祖辈屏幕的方法。此外,我们应该保证通过返回键的临时导航遵守Android公约(一般的Android应用使用习惯)。

前进/后退导航设计
更多设计指导原则,请参阅Android设计之导航模式向导。

支持临时导航:返回

临时导航,或是在历史屏幕之前导航,被深入的根植到了Android系统中。所有的Android用户都希望返回键能把他们带回到前一个屏幕,而不考虑其它状态。历史屏幕总是被根植在用户的Launcher(启动)应用中(手机的"主(home)"屏幕)。也就是说,当用户按足够多次返回按键时,用户将回到自己的桌面,之后,返回键将不再起作用。

app-navigation-ancestral-navigate-back.png

图 1.返回键在从用户(或通信讯)应用进入Email应用后的行为示意图。

应用程序通常不用自己去考虑如何管理返回键,系统自动地处理了任务与返回堆栈-Tasks and Back Stack或是历史屏幕列表。默认情况下,当返回键被按下时,即可遍历这个屏幕列表,把当前屏幕从列表上移除。

然而,有些情况下你可能希望重写返回键的行为。例如,如你的屏幕中嵌入了一个浏览器,用户可以接入页面中的元素并在不同的网页中导航,你也许会希望当用户按下设备的返回键时触发的是浏览器默认的返回行为。直到返回到浏览器历史记录的顶部时,你应该要使用回系统默认的返回键行为。

提供祖传式的导航:向上和主页-Provide Ancestral Navigation: Up and Home

在Android 3.0之前,最通用的祖传式导航方式是主页隐喻模式。其通常的实现方式是:在主菜单中存在一个主页条目,或是在屏幕的左上角有一个主页按键,一般情况下也是作为动作栏(见Android设计中的模式文档)的一个组件存在的。当选择主页时,用户将被带回到最上层的屏幕,通常就是我们熟知的主屏幕。

提供直接接入应用程序主页的方法可以给用户增加舒服和安全感。不考虑用户在应用的哪个位置,如果他们在应用中"迷路"了,则可以选择主页按键返回到他们熟悉的主屏幕。


Android 3.0引入了向上隐喻模式,它被放在动作栏中作为之前讨论过的主页按键的替代按键。当点击向上时,用户应该被带到层级上的父屏幕中。这个导航步骤应该是返回到前一个屏幕(同前文中讨论的返回按键一样),但这并不是唯一情况。因此,开发者应该保证每一个屏幕的向上导航到一个单一的,事先决定好的父屏幕。

app-navigation-ancestral-navigate-up.png

图 2.从通讯录应用进入Email应用后,向上导航行为范例。

在某些情况下,为向上按键执行一个动作比导航到父屏幕更为合适。如,基于Android 3.0平板的Gmail应用,当设备放置在水平方向时阅读了一个应用会话时,会话列表与会话详情是紧挨着显示的。这种父-子屏幕分组格式,这上一上一节课中讨论过。然而,当设备坚持放置阅读邮件时,只有会话详情被显示。向上按键在此时则被临时的用来显示父面板(从屏幕的左侧滑出)。当左侧的面板可见时,再按一次向上按键时,则向上返回到一个全屏显示的会话列表。

实现注解: 作为一个最佳实践方式,当实现主页向上功能时,请确保清空任何派生的屏幕返回堆栈。对于主页功能,唯一应该被留下的返回堆栈是主屏幕。对于向上导航,当前的屏幕应该被移除,除返回导航将返回到的是不同屏幕层级的其它屏幕。你可以将FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_NEW_TASKintent标志位一起使用来实现这个功能。

最后一节课中,我们将使用到目前为止所讨论的所有概念来为我们的新闻应用范例创建交互设计框架。

posted @ 2014-07-31 10:52  ╰→劉じ尛鶴  阅读(119)  评论(0)    收藏  举报