令人绝望的 Android 后退、主页、多任务 Navbar 设计

April 5, 2021 ☼ 英特网随想Android 设计

1. Android 的 Navbar 变化

Android 4.01 ~ 8.0 Android 9.0 Android 10.0
后退 点击后退按钮,后退到前一页 点击后退按钮,后退到前一页 取消后退按钮,改为屏幕边缘滑动操作
主页 点击主页按钮,回到主页 点击主页按钮,回到主页 取消主页按钮,底部上滑后进入主页
多任务 点击多任务按钮,切换到多任务菜单 取消多任务按钮,上滑主页按钮进入多任务 取消多任务按钮,底部上滑并暂停后,进入多任务

2. Android 的后退按钮的历史遗留问题

在大屏幕流行开始,Android 所使用的后退按钮是设计进步。用户不再需要点击左上角的后退(阿拉伯语用户则是右上角),便可进行方便的后退;对于 iOS,给予用户方便的后退方式,则是在 2013 年的 iOS 7 中才引入了侧滑后退。

但后退按钮从一开始,便引入了一个问题,到现在依旧没有解决:

a. 当用户打开 Twitter,在首页浏览 Tweets,并点开了 Tweet A;
b. 然后用户去 Chrome 里搜索一个内容,搜索结果里有另一条 Tweet B,用户很感兴趣,点击了这条搜索结果;
c. 这时候浏览器跳出,自动打开了 Twitter 应用,并跳转到了 Tweet B,这时候,用户点击后退,是应该回到 Tweet A,还是回到浏览器的搜索结果?

这里出现了两个问题:

a. 让用户产生了迟疑,接下来的后退到底会发生什么;
b. 实际上,Android 不同应用,后退规则会不一样,有一些会跳转回 Chrome,有一些则会后退到 App 的上一页。

但要注意的是,谷歌实际上给出了设计准则2:在上面的场景下,用户点击 Navbar 的后退按钮,会回到 Chrome;点击 Twitter 本身的后退按钮,则会回到 Twitter 首页(注意,并不是回到 Tweet A)。

但即使有如此的设计准则下,并假设所有 App 都遵循准则,依然无法回避一个问题:用户首次在上面的场景里,点击 Navbar 退后时,用户并不知道会后退到哪个页面(当然,后退认知的习惯,的确可以在多次交互的教育后培养)。

相反 iOS,用户的后退,无论是左上方按钮的后退,还是边缘滑动,永远都指向一个行为:返回当前应用的上一页(当然也有一些 iOS App 并不遵循,导致返回逻辑出现问题)。只有点击最左上角的跳转按钮,才会跳转回之前的 App 上。

3. Android 的 Navbar 变化问题

iOS 的多任务,一直都是一个“高级操作”,从来没有一个按钮可以让用户“一键”多任务,无论是“双击物理主页按钮”、“边缘重按后滑动”、还是到“上滑暂停”手势操作。这一系列都是高级用户所使用3。多数用户,恐怕都是在单击物理按钮,回到主页,打开另一个 App,或是上滑回到主页,打开另一个 App。

在这样的教育下,用户实际上切换基本操作交互的成本,是相对来说低的(实际切换的,只有“返回主页”的交互)。

而 Android,则是呈现出了另一套逻辑。从很早开始,Android 就开始宣传他的 Multitasking,这也是他将按钮放在 Navbar 上的重要原因——这是早期 Android 和 iOS 非常大的区别,iOS 早期的多任务极其糟糕——比如搭载 iOS 7 的 iPhone 5s,如果在 Safari 网页加载过程中,切回主页,再返回到 Safari,那么会出现“该页无法显示”。

然而,随着 Android 9.0 的改变,首先砍掉的便是多任务按钮。这和 Google 最一开始宣传方向便矛盾,更加可怕的是,这套交互,在 10.0 再次改变,活成了 iOS 的样子。

如果一个用户没用过 iOS,直接从 Android 8.0 跳到 10.0 的手机,那么一定会出现极大的不适应(请注意,多数人不会每年更换手机,多数 Android 手机也不会每年更新版本)。对比 iOS 对多数人来说只修改了“返回主页”,Android 则是改动了 3 个按钮的交互——后退是屏幕边缘手势、回到主页是上滑手势、多任务是上滑暂停手势。

4. 灾难性的后退和汉堡按钮

当谷歌放弃点击交互,并告诉用户手势操作更加“符合直觉”时,其他设计规范却没有跟上,即使到现在,Material Design 中的 Navigation drawer 设计准则,依旧在使用汉堡按钮做样式。

而手势的后退,让本身就让人困惑的后退操作雪上加霜——如果说之前上下两个后退按钮还可以以 UX 的形式区分开,那么现在在当前 App 的页面边缘进行滑动,则已经是无法区分这到底是在后退当前 App,还是在后退到上一个 App。

在 Android 10 发布时,网上居然出现了 How to open side menus in Android 10 w/ gesture navigation 这样的文章,一个最基本的、Android 里最基本的交互,居然需要有人教,才会使用。

是的,后退手势和汉堡按钮交互矛盾了。在 Android 10 提前测试了的情况下,谷歌依旧无视基本交互体验,给用户喂屎。当然这已经是谷歌的基本操作了——告诉用户 Android 的特点是“多元”、“自定义”,然后第三方 Launcher 下的手势操作过渡动画有兼容性问题,并宣称已经再修了,2 年过去了,依然没修;告诉设计,需要遵循 Material Design,然后自己的 App 屡次打破规范,无论是从 Tab 到 Bottom navigation 的妥协4,还是 Bottom navigation 不能用滑动进行切换(请看看谷歌把印度 Google Pay 推给全球),这一切都在说:我没有长期规划。

而对于这一切的解决办法,谷歌的回应是:Android 12 may use machine learning to fix the Back Gesture Problem.

Classic Google, and, fuck you!!!


  1. 这里需要指出的是,“三大金刚按钮”实际上是由 Android 3.0 引入,但该系统仅仅运行在平板。↩︎

  2. If a user is at the app’s start destination, then the Up button does not appear, because the Up button never exits the app. The Back button, however, is shown and does exit the app. When your app is launched using a deep link on another app’s task, Up transitions users back to your app’s task and through a simulated back stack and not to the app that triggered the deep link. The Back button, however, does take you back to the other app.↩︎

  3. 这点仅仅是我的猜测。↩︎

  4. 但我认为这个妥协是正确的选择,Tab 会将主页的交互复杂化。看看微信就知道,如果是顶 Tab 的滑动形式,那么控制每个对话则需要长按呼出菜单,这又是一个降低渗透率的交互…然而 Android 微信,保留了滑动操作,但却是底栏切换,他妈…↩︎