热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Android的界面设计规范-7

导航一致的导航是一个整体的用户体验的必不可少的组成部分。与用户行为不一致和出乎用户意料的操作会让用户感到很反感。Android3.0的显着变化是全局导航行为。亲切地遵循返回与向上导航的设计规

导航

一致的导航是一个整体的用户体验的必不可少的组成部分。与用户行为不一致和出乎用户意料的操作会让用户感到很反感。 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
本博原创文章版权归博客园和本人共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出作者名称和原文连接,否则保留追究法律责任的权利。
推荐阅读
  • 探索新一代API文档工具,告别Swagger的繁琐
    对于后端开发者而言,编写和维护API文档既繁琐又不可或缺。本文将介绍一款全新的API文档工具,帮助团队更高效地协作,简化API文档生成流程。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 精致小屏灰色风格苹果CMS v10模板,支持DIY主题管理系统
    探索一款专为影视站设计的苹果CMS v10模板,具备强大的主题管理系统和500多个设置项,无需二次开发即可轻松配置。下载地址:https://www.mytheme.cn/maccms/244.html,演示地址:http://demo.mytheme.cn/index.php?id=244。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 设计模式在软件开发中被广泛应用,但如果不当使用,可能会导致系统复杂性增加。例如,过度添加类可能导致类图难以理解,代码跟踪变得复杂。本文探讨如何在使用设计模式时保持系统的简洁和高效。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 本文将详细介绍Nose这一非标准库的Python测试框架,它虽然不是Python官方发行版的一部分,但与unittest框架紧密相关,旨在通过简化测试流程来提升开发效率。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • 烤鸭|本文_Spring之Bean的生命周期详解
    烤鸭|本文_Spring之Bean的生命周期详解 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
author-avatar
我在等白色的雪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有