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

2021-04-05 22:16:31 +08:00
 haruhi
有点长,就不全文贴过来了。大概是吐槽 Android 第一期。

https://bilibi.li/2021/04/05/android-navbar-nightmare
7793 次点击
所在节点    分享发现
78 条回复
ejin
2021-04-05 22:39:13 +08:00
作为安卓用户从来就不疑惑,更不会绝望,为啥?

因为三个键充分的发挥了作用:
中间的弹回桌面或者切换 app
左边的弹出菜单或者选项
右边的后退到上一页

方便到爆好么………

你非要混合使用,那肯定是错误操作频频出现了,但是实际上除非是纯新手,否则基本上不会混合使用。

相比之下,Windows 的回退键才是真的有问题,一会是输入状态的删除字符使用,非输入状态又变成了网页退回上一页的快捷键,20 年了都还偶尔会中招,输入了一部分内容后跳到上一页,白输入了。(试了下 Chrome 似乎没这问题,看来是 IE 系)
nuk
2021-04-05 22:41:54 +08:00
@ejin chrome 已经删除 backspace 返回上一页的功能了,以前是有的
loli
2021-04-05 22:43:51 +08:00
不知还有没有在用三大金刚的朋友,双击(不用太快,逻辑就是多任务界面再按多任务切换至上一窗口.)多任务键相当到 win 的 alt tab 哦,两个应用间切换不要太方便.
agagega
2021-04-05 22:52:35 +08:00
用浏览器的时候,右侧左滑还是会后退而不是前进,很反直觉。
iOS 的问题在于没有一个强制性的规范要求应用如何方便地后退。一些手势做得好的应用(比如 Slack )很少会觉得返回很难受。其实要 iOS 加入一个系统级返回按钮也可行(就是不太完美),点一下直接返回 NavigationView 的上一级(想想长按左上角返回箭头也能出现上一级列表),就是按苹果的作风应该放到辅助功能里。
also24
2021-04-05 22:55:44 +08:00
关于文章中的问题 2,这实际上是 Android 很早就在设计规范中有说明的:
https://developer.android.com/guide/navigation/navigation-principles#up_and_back_are_identical_within_your_apps_task

实际上就是 " Back Buttom" 和 "Up Button" 的区别,但是比较让人无奈的是,几乎所有的 APP,从一开始就无视了这个规范,这个规范也变得名存实亡,以至于荼毒至今。

在我看来这其实是 Android 多任务体系的重要一环,我个人非常喜欢这个规范中所体现出的内在逻辑:
系统层级的 Back Button 管理的是 screen (页面),不关心你是什么 APP ;
APP 内的 Up Button 管理的才是 APP 内部的逻辑层级,不关心你之前在干啥。
also24
2021-04-05 23:01:18 +08:00
关于文章中的问题 3,有一些地方需要补充:

『 iOS 的多任务,一直都是一个“高级操作”,从来没有一个按钮可以让用户“一键”多任务』

实际上 iOS 支持在底部滑动来快速切换应用:
https://support.apple.com/zh-sg/guide/iphone/iph1a1f981ad/ios
在配备面容 ID 的 iPhone 上,若要在打开的 App 之间快速切换,请沿屏幕底部边缘向右或向左轻扫。

同样的 ,Android 9/10 也是支持这个手势的:
https://support.google.com/android/answer/9079644?hl=zh-Hans#zippy=%2C%E5%9C%A8%E5%BA%94%E7%94%A8%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2
手势导航:在屏幕的最底部,从左向右滑动。
“双按钮”导航:要在您最近使用过的 2 个应用之间切换,请在“主屏幕”图标 主屏幕 上向右滑动。
“三按钮”导航:点按“概览”图标 概览。向右滑动,直到屏幕上显示您所需的应用。点按该应用。
haruhi
2021-04-05 23:07:42 +08:00
@also24

感谢关于问题 2 的纠正,会添加到文章中。

对于问题 3,指的是呼出多任务页面,并不是快速切换 App 。
also24
2021-04-05 23:08:33 +08:00
补充:
在搭配 3D Touch 功能的 iPhone 机型上,支持重按左侧边缘呼出多任务页面,

iOS 11 曾因为取消了此功能招致大量反馈:
https://www.macrumors.com/2017/09/21/3d-touch-app-switcher-gesture-will-return/
also24
2021-04-05 23:10:31 +08:00
@haruhi #7
在我看来,滑动底部切换 APP,是比呼出多任务页面,更加『高级』的操作,因为你不但需要有明确的多任务意识,还需要对 APP 的先后关系有一定的逻辑认知。
bkmi
2021-04-05 23:13:51 +08:00
@also24 我感觉你刚好说反了,系统的 back 按钮才是应该处理 "返回" 这个逻辑,比如弹框可以关闭,输入法可以收起;
而页面上的返回剪头,也就是你说的 “up button”,应该直接返回上一个页面,典型案例就是输入法激活的状态下,也应该直接返回上一页。
also24
2021-04-05 23:20:07 +08:00
@bkmi #10
我这个 『页面』,专门引用了原文中的 "screen",就是担心引起误解,果然还是引起了。
这个不是指 APP 内部的页面,而是说你看到的那个『屏幕中的内容』,可以更粗略的理解为『将屏幕还原为上一个状态』。(此处不严谨,主要是粗略含义)

实际上引入 Android 的 Activity 栈 Fragment 栈会更好理解, "Back Button" 就是一个简单的出栈操作。


而对于 "Up Button",应该返回的是『上一级』而非『上一个』页面,是与 APP 的内部逻辑相关联的。
also24
2021-04-05 23:22:48 +08:00
以楼主的例子来分析:
a. 当用户打开一个 Twitter,并点开了 Tweet A ;
b. 然后用户去 Chrome 里搜索一个内容,搜索结果里有另一条 Tweet B,用户很感兴趣,点击了这条搜索结果;
c. 这时候浏览器跳出,自动打开了 Twitter 应用,并跳转到了 Tweet B,这时候,用户点击后退,是应该回到 Tweet A,还是回到浏览器的搜索结果?


假如用户此时点击的是 "Back Button" ,因为 Activity 栈的上一条是 Chrome,那就直接返回 Chrome 就好。
而如果用户此时点击的是 "Up Button",此时应当返回的是 Twitter APP 的主页面(注意不是 Tweet A )才对。
S179276SP
2021-04-05 23:40:54 +08:00
现在谷歌不晓得咋想的,18 年把 youtube 改的操作逻辑贼难用,视频返回直接到主界面不是上一个视频,右下角小窗非要底部小小窗。后来 chrome 层叠标签左右滑动关闭改成大方块。
feiandxs
2021-04-05 23:48:15 +08:00
作为曾经的 Android 用户,现在的 iOS 用户,我觉得 Android 上什么东西都没让我特别印象深刻过,但是那三个导航键简直好用到爆。这点上我觉得 iOS 的底部任务条只是个拙劣的实现。

iOS 在这一根小横条的操作上确实也做到了几乎登峰造极,但我还是觉得,其实本可不必如此麻烦的。
codehz
2021-04-06 00:09:42 +08:00
android 多任务最大的问题是隐藏在背后的逻辑问题,这个永远不是交互设计所能解决的。。。
什么逻辑呢,就是 android 自带了一个返回堆栈,不同的 activity 正常切换时,应该可以维护这个栈,返回键能返回到上一个界面,回到启动器点开新 app,或者点击通知,应该会启动一个新的栈(暂且不提那些设计不良的,滥用 clear top,single top 的)
但是呢,一旦你使用任务切换功能,以上功能就会被完全破坏了,返回键很有可能是直接回到启动器,再也找不回原来的栈了。。。
更别说应用内部的导航也可以轻易破坏这个栈,使得返回键存在的意义被无限缩小,用户需要小心谨慎的使用手机,才可以在按下返回键的时候有充足的自信预测下一帧看到的画面是桌面还是前一个应用。。。(关键也没个提示告诉你返回键是回到桌面还是上个应用)
一个理想的多任务切换,应该把这个结构拓展成有向无环图,A 界面导航到 B 界面,然后返回 A 界面导航到 C 界面,再切换到 B 界面按下返回键时应该能回到 A 界面,再次切换 C 界面时,也应该能够回到 A 界面。
NSAgold
2021-04-06 00:36:40 +08:00
“这里需要指出的是,“三大金刚按钮”实际上是由 Android 3.0 引入,但该系统仅仅运行在平板。↩︎”
不严谨,应改成“navbar 中的三大金刚按钮”
因为屏幕外的三大金刚按钮(电容式,按键式)从安卓 1.x 时代就有了
联系上下文没问题,但是单看注释并不严谨

现在有一部分国产应用已经走在了遵循该规范的路上了,这是好的。
also24
2021-04-06 00:41:57 +08:00
@codehz #15
我觉得 Android 在系统设计层面上的逻辑还是清晰的,因为它实际上还有一个叫做 "Task" 的层级存在。

我们常说的『多任务切换』,实际上切换的并不是 Application 或者 Activity,而是 Task (任务)。

关于这部分的文档可以参见:
https://developer.android.com/guide/components/activities/tasks-and-back-stack
https://developer.android.com/guide/components/activities/recents


但是还是那句话,认真按照规范实现的应用实在是太小了,Android 精心设计的这一套逻辑,实际中的应用大多并未遵守,导致现实世界中的 Android 确实存在极其混乱的状态。
also24
2021-04-06 00:46:36 +08:00
@NSAgold #16
严谨一点,那时候是四大金刚,还有搜索键呢(而且顺序还不确定)

stabc
2021-04-06 00:59:20 +08:00
很喜欢 Android 的返回键,很方便。ios 的返回键一般在左上角很难按到,不知道为什么没见很多人吐槽这个。
murmur
2021-04-06 08:08:11 +08:00
国产 android 的 nav bar 是可以选的,你要全面屏就全面屏,你要金刚按键就金刚按键

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/768188

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX