# Chris Lacy 对返回键的改进建议

- 作者：积木
- 发布时间：2014-09-25 08:48
- 分类：公司、特稿
- 原文：https://www.ifanr.com/455439

[![ics-back-button-608x402](https://s3.ifanr.com/wp-content/uploads/2014/09/ics-back-button-608x402.jpg)](http://www.ifanr.com/455439/ics-back-button-608x402)

用过早期 Android 手机的人，一定都记得“四大金刚键”。与 iPhone 只保留一个“Home”键不同，Android 有四个系统按键，分别是主页（Home）、菜单（Menu）、搜索（Search）和返回（Back）。把系统的重要操作固定到不同的按键上，看似一个提供效率、节省屏幕空间的做法，但是在实际操作中，用户体验并不理想。

搜索是个很少使用的功能、 菜单不知何时应该调出、返回总是让人困惑。至于 Home 键，除了返回主屏，还承担了调出多任务界面的功能，需要长按，又是一个隐藏的东西。从 Android 4.0（准确的说是 3.0）开始，Matias Duarte 对 Android 用户界面进行了大刀阔斧的改革，系统按键就是一个重要方面。

一方面，虚拟按键取代了实体按键；另一方面，系统按键也进行了调整。搜索和菜单被取消，功能转移到应用界面中，而 Home 键的功能也变得单一了，调出多任务的功能交给了多任务键。总的来说，系统按键变得更为合理了。只是，那个自 Android 诞生以来就存在的 Back 键，没有什么根本上的改进。

从理论上说，返回键其实很好讲清楚，就是返回上一个界面，但是，那个界面可能是主屏、上一个应用或者是应用的上一个层级。有时候，这会给用户造成一些困惑，何况，应用也可以赋予返回键不同的功能，使情况变得更为复杂。

随便举个例子。我们看微博的时候，收到了 gReader 的 RSS 更新，从通知中心进入 gReader，然后按返回，我们会退回到微博；但是，当我们收到墨迹天气的预警通知，进入“预警信息提示”页面后，点击返回键不会退回到微博，而是到达天气信息页面。两个应用赋予了通知键不同的功能，一个是回到上一个应用，另一个则是回到应用上一个层级。

这里还要谈到另一个问题，就是返回键和 UP 键的区别。Google 增加了 UP 键的目的，可能是要解决返回键带来的困惑，但从实际情况看，或许起到了相反的效果。因为很多时候，UP 键和返回键的效果是一样的，况且，UP 键位于左上角，不容易按到，所以，即使是需要 UP 的时候，用户还是会习惯性地去按返回键，而开发者也会照顾这种习惯。有时候，这会造成奇怪的后果。

在墨迹天气的这个例子中，“预警信息提示”页面上是有 UP 键的，但是，用户会习惯性地用返回键，回到上一个层级，于是，应用就让返回键固定为“回到应用上一个层级”，与操作系统原本的设定相违背了。

如何使 Android 的返回键更加好用，减少用户的困惑？曾经开发了 Tweet Lanes、Action Launcher、Link Bubble、TapPath 等应用的 [Chris Lacy](https://plus.google.com/+ChrisLacy/posts/cRhDALMzGXg) 在 Google+ 上分享了自己的想法。

他总结了返回键的三个主要用途：从 App B 返回 App A；回到应用的上个层级；取消模态界面（Modal UI）。他的建议是，利用虚拟按键的灵活性，根据不同情景变换按键形态，从而明确地展示出其作用。

情况一，从 App 2 回到 App 1。

在 Android L 中，当你按 Home 或 Back 退出应用时，应用会向下滑出屏幕。Chris Lacy 的建议是，当返回键的作用是把你带出应用，它应该变为向下指的形态。这与动画效果是一致的，并且明确告诉你，它的作用是退出应用。

[![4&#95;app&#95;back&#95;B](https://s3.ifanr.com/wp-content/uploads/2014/09/4_app_back_B.jpg)](http://www.ifanr.com/455439/4_app_back_b) [  ](http://www.ifanr.com/455439/5_activity_back_c)

情况二，回到应用上一个层级。

无需任何改变。

![5&#95;activity&#95;back&#95;C](https://s3.ifanr.com/wp-content/uploads/2014/09/5_activity_back_C.jpg)

情况三，清除模态界面

这里的模态界面包括对话框、弹出菜单、导航抽屉等等。在 Android 中，我们已经见过虚拟按钮改变形态，就是在调出输入法的时候，返回键会变成如下的样子。

![7&#95;dismiss&#95;B](https://s3.ifanr.com/wp-content/uploads/2014/09/7_dismiss_B.jpg)

Chris Lacy 对情况三的建议是，把“清除输入法”的行为扩展，使其针对所有的模块界面，并且使用一个更合适的图标。

[![8&#95;dismiss&#95;C](https://s3.ifanr.com/wp-content/uploads/2014/09/8_dismiss_C.jpg)](http://www.ifanr.com/455439/8_dismiss_c)

Chris Lacy 的想法很有意思，不过，这种改动是系统级的，需要新的 API，而 Google 或许不认为这是个好想法。还有一个问题是，现在许多厂商的设备，仍然在使用实体按键，这样的改动是不适用的。好在，Android 系统是开放的，Chris Lacy 的想法或许会在第三方 ROM 中变为现实。

图片来自 [pocketable](http://www.pocketables.com/2012/06/i-like-functionality-of-androids-back-button-but-the-inconsistency-needs-to-be-fixed.html)
