错误是应用未按预期执行时出现的状况, 一般发生在:应用无法识别用户输入的信息系统或应用故障用户执行的多个操作产生了冲突用好的设计避免错误发生. 让你的应用理解用户, 而不是让用户去理解你的应用. 当错误不可避免的发生时, 向用户传达清晰的信息能更好地让用户理解发生了什么以及如何快速解决它. 随时随刻保存当前状态, 尤其是用户输入内容时.
空状态发生于一个常规内容页面不能显示时。可能是一个没有条目的列表,或者一个没有返回结果的搜索。虽然这些情况不是典型的,但也是展示良好设计以避免用户失望或者困惑的好机会。如果因为一个系统错误不能显示内容,参见 app errors。显示空状态避免完全空的内容显示空状态最基本的空状态显示一个非交互的图片和文本标语。
用具有一致性且对用户友好的方式展示如日期时间这样的数据. 确保呈现的信息是简洁的, 避免不必要的冗余.日期与时间此指南适用于:当前日期与时间日期与时间设置, 例如闹钟或提醒当一个对象被创建, 发送, 编辑或其他操作行为发生时的时间和日期基本显示关于时间, 使用大写的 AM 或 PM 区分时段, 用空格与时间分隔开.
你的应用程序结构应该会受到你想展现给用户的内容和任务的影响。
用法对同时满足以下条件的元素使用工具提示:具有交互性主要是图形而非文本 (上图)可取 (上图)不可取工具提示不同于悬浮卡片,后者用来显示图片和格式化的文本等更为丰富的信息。工具提示也不同于ALT属性,后者用来提示静态图片的主旨。
文本框可以让用户输入文本。它们可以是单行的,带或不带滚动条,也可以是多行的,并且带有一个图标。点击文本框后显示光标,并自动显示键盘。除了输入,文本框可以进行其他任务操作,如文本选择(剪切,复制,粘贴)以及数据的自动查找功能。详情见 模式 > 选择 文本选择的设计。 文本框可以有不同的输入类型。
在一个 app 中,tabs 使在不同的视图和功能间探索和切换以及浏览不同类别的数据集合起来变得简单。用法tab 用来显示有关联的分组内容。tab标签用来简要的描述内容。
开关允许用户选择选择项。一共有三种类型的开关:复选框、单选按钮和 on/off 开关。注释:下面示例中所示的图形环代表一个动画,并不是实际按钮的外观。复选框复选框允许用户从一组选项中选择多个。如果需要在一个列表中出现多个 on/off 选项,复选框是一种节省空间的好方式。如果只有一个 on/off 选择,不要使用复选框,而应该替换成 on/off 开关。
副标题是特殊的列表区块,它描绘出一个列表或是网格的不同部分,通常与当前的筛选条件或排序条件相关。副标题可以内联展示在区块里,也可以关联到内容里,例如,关联在相邻的分组列表里。在滚动的过程中,副标题一直固定在屏幕的顶部,除非屏幕切换或被其他副标题替换。为了提高分组内容的视觉效果,可以用系统颜色来显示副标题。列表副标题区块高度是 48dp。
Snackbar 是一种针对操作的轻量级反馈机制,常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方。它们出现在屏幕所有层的最上方,包括浮动操作按钮。它们会在超时或者用户在屏幕其他地方触摸之后自动消失。Snackbar 可以在屏幕上滑动关闭。当它们出现时,不会阻碍用户在屏幕上的输入,并且也不支持输入。屏幕上同时最多只能现实一个 Snackbar。
滑块控件(Sliders,简称滑块)可以让我们通过在连续或间断的区间内滑动锚点来选择一个合适的数值。区间最小值放在左边,对应的,最大值放在右边。滑块(Sliders)可以在滑动条的左右两端设定图标来反映数值的强度。这种交互特性使得它在设置诸如音量、亮度、色彩饱和度等需要反映强度等级的选项时成为一种极好的选择。
选择控制器允许用户选择选项。有三种类型:复选框、单选框以及开/关切换。选择控制器使用主题同样的颜色。复选框单选按钮切换开关复选框复选框允许用户从一个数据集中选择多个选项。如果在一个列表中有多个选项,你可以通过使用复选框而不是开/关切换来节省空间。如果你有一个单选项,不要用复选框,使用开/关切换。
在用户可以查看并与内容进行交互之前,尽可能地减少视觉上的变化,尽量使应用加载过程令人愉快。每次操作只能由一个活动指示器呈现,例如,对于刷新操作,你不能即用刷新条,又用动态圆圈来指示。指示器类型在操作中,对于完成部分可以确定的情况下,使用确定的指示器,他们能让用户对某个操作所需要的时间有个快速的了解。
选择器提供了一个简单的方法来从一个预定义集合中选取单个值。在手机上,选择器最适合被用来显示一个确认对话框。对于内联显示,例如一个表单中,考虑使用分段下拉按钮之类的紧凑控制。在你的应用中使用这些组件可以帮你保证用户指定的日期或者时间是正确格式化的。日期选择器的格式根据地区自动进行调整,即,美国是月-日-年,其他地区是日-月-年。
用法菜单是临时的一张纸(paper),由按钮(button)、动作(action)、点(pointer)或者包含至少两个菜单项的其他控件触发。每一个菜单项是一个离散的选项或者动作,并且能够影响到应用、视图或者视图中选中的按钮。菜单不应该用作应用中主要的导航方法。 触发按钮或者控件的标签(label)可以简明准确的反映出菜单中包含的菜单项。
用法列表控制分为如下四种:状态主操作(包括文本字符串)次要操作次要信息列表标题的元素要容易分辨,首先要注意阅读顺序,所以,状态和主操作放在标题列表的左边。在这里,列表里面的文本内容也被认为是主操作的操作目标的一部分。 不要把两个展示图标和操作图标放在一起,比如复选框和头像如果列表的主操作是做导航作用的,那么就不要使用icon。
列表作为一个单一的连续元素来以垂直排列的方式显示多行条目。用法列表由单一连续的列构成,该列又等分成相同宽度称为行(rows) 的子部分。行是瓦片(tiles) 的容器。瓦片中存放内容,并且在列表中可以改变高度。
网格列表是一种标准列表视图的可选组件。网格列表与应用于布局和其他可视视图中的网格有着明显的区别。用法网格列表最适合用于同类数据(homogeneous data type),典型的如图片,并且对可视化理解(visual comprehension )和相似数据类型的区别进行了优化。
分隔线 (Dividers) 主要用于管理和分隔列表和页面布局内的内容,以便让内容生成更好的视觉效果及空间感。示例中呈现的分隔线是一种弱规则,弱到不会去打扰到用户对内容的关注。用途没有锚点的项(Items without anchors)当在列表中没有像头像或者是图标之类的锚点元素时,单靠空格并不足以用于区分每个数据项(原文中使用的是“瓦片”)。
Dialogs (提示框)用于提示用户作一些决定,或者是完成某个任务时需要的一些其它额外的信息。 Dialog可以是用一种 取消/确定 的简单应答模式,也可以是自定义布局的复杂模式,比如说一些文本设置或者是文本输入 。用途Dialog 最典型的应用场景是提示用户去做一个些被安排好的决定 ,而这些决定可能是当前任务的一部分或者是前至条件。
关注时代Java