2014 年,夏普凭借一台 AQUOS CRYSTAL 赚到了不少眼球,这台手机也成为「全面屏」时代的先声。自那以后,屏占比就成了智能手机竞相追逐的参数。
客观地说,十年以来,随着机械升降结构、屏下指纹传感器、屏下前置摄像头等硬件方案的不断探索和突破,全面屏的实现效果已经越来越好;前段时间发布的努比亚 Z60 Ultra 已经打出了「一眼几乎全是屏幕」的口号。
但与硬件上的进步不相称的是,就在 Android 系统版本号都快用完一遍字母表的 2024 年,很多 Android 软件还在对全面屏水土不服,在上面运行时「畏手畏脚」,在「刘海」和「下巴」部分留下尴尬的黑边。
那么,Android 应用填满全面屏怎么就这么难?理想的效果应该是怎样的?
从哪边,到哪边?
在 Google 的应用开发指南中,适配全面屏的状态称为「边到边」(edge-to-edge)。具体而言,是指应用能在系统栏后面绘制画面,从而实现全屏显示,即充分使用屏幕的整个宽度和高度。这里,系统栏是指顶部的通知栏和底部的导航栏(过去的虚拟按钮、如今的多任务「小横条」所在位置)。
下图是 Google 日历的「边到边」显示效果。可以看到的应用标题区域铺满屏幕顶部,底部小横条不会遮挡随着上滑出现的内容,而且会随着内容动态改变颜色。民间爱好者喜欢用「沉浸」这一术语来描述适配了边到边的应用(尽管这是一个并不准确的叫法,沉浸本来指的是应用在显示内容时将系统栏完全隐藏的功能)。
诚然,位于状态栏和导航栏背景中、与系统栏重叠的显示内容很大概率并不具备实际的可读性,但在观感层面,用显示的内容将其填满、而不是将其「留黑」,于视觉上是更加符合我们对「屏占比」的不懈追求的。另一个方面来看,目前 LCD 屏幕的设备几乎绝迹、OLED 屏幕显示黑色几乎不发光这一特性,反过来也让系统上、下两条黑边更显「返祖」——毕竟我们辛辛苦苦赚来的「一亩三分地」,怎么能不显示内容了呢?
边到边的意义也不只是好看。从交互设计角度看,边到边能尽可能完整地利用所有屏幕显示区域,与不断将屏幕向手机物理边框的方向推动、铺满的硬件设计相呼应,也让从「三大金刚」按键向多任务手势的进化更有意义。
应者寥寥的适配现状,难免露馅的权宜之计
但正如 Android 平台很多看起来美好的特性一样,尽管边到边的系统层面支持已经存在多年,真正愿意花时间适配支持的应用并不多。
这部分是因为适配工作确实比较繁琐:根据 Google 的说明,至少包括声明支持边到边绘制、更改系统栏颜色、调整浮动控件位置、避开安全区和手势冲突区域等多个步骤,而这些步骤中涉及的尺寸相关参数又是因机型而异的,工作量确实不能忽略。
(这里我也简单咨询了一下有着 iOS、Android 双平台开发经历,并且对 Android 平台特性非常感兴趣的 50 音起源开发者 @周楷雯Kevin,他表示 iOS 应用将类似「边到边」这样的特性处理得天衣无缝、并且从一开始就照顾到横屏使用这样的特殊场景,几乎都不太需要开发者去额外做什么适配工作,Apple 官方提供的 SDK 工具在编译的时候默认会处理好安全区。)
其结果就是大批像闲鱼这种直接放弃治疗的应用。下图是该应用在 Google Pixel 原版系统上的显示效果。可以看到,由于没有适配边到边,导航栏背景显示为默认的以纯黑色显示,成为一道尴尬的黑边。(还有些应用连状态栏的颜色也不做处理,但相对少见。)
但用户往往并不理解这个问题(至少部分地)来自应用本身。相反,他们往往会找到手机厂商,抱怨,「你们的底栏不沉浸了!」但厂商能怎么办?用户是上帝,总不能翻出文档里「按需适配」四个大字怼回去吧?这就催生了定制系统中流行的治标不治本的方案:自动填充。