跳到正文
妙盒博客
返回

键盘上方的工具栏,为什么切换时容易跳

在手机上写笔记时,常用的格式、光标或插入工具通常放在键盘上方。它离手指近,也不会遮住正在输入的文字。

但只要点开工具栏里的二级面板,体验就可能突然变差:键盘先收起,工具栏向下掉;面板随后出现,工具栏又被顶回来。也可能留下一块空白,挡住正文,或者在切换输入法和外接键盘时来回跳动。

这些变化通常只有几十像素,却会让人产生很明确的感觉:界面没有跟上自己的操作。

好的切换,不应该让正文重新找位置

妙盒笔记(Abox Note)的键盘上方有编辑工具栏。打开二级面板时,理想体验不是简单地“把键盘关掉,再打开另一块区域”,而是让新的面板接住键盘原来占据的空间。

从使用者的角度看,工具栏应该尽量停在原处:

这项设计的目的不是追求两个区域在每台设备上拥有完全相同的像素高度,而是保持操作的连续感。用户刚刚点击的按钮不该在下一瞬间逃到另一个位置,正在看的那行文字也不该因为底部区域切换而反复移动。

键盘高度不是一个固定答案

困难在于,手机键盘并不是一块永远固定的矩形。

键盘出现和收起都有动画,系统上报的高度会逐步变化。输入法可以切换候选区和工具条;iPad 接入外接键盘后,屏幕底部可能只剩一条较矮的辅助栏;带有底部手势区域的设备,还会在键盘隐藏前后改变可用空间。

如果工具栏追着每一次高度变化立即移动,它就可能把动画途中的数值当成最终结果。页面本身正在避让键盘,工具栏又做一次调整,两种移动叠在一起,便会出现抖动、闪烁或短暂遮挡。

妙盒笔记采用的关键思路,是在切换开始前记住最近一次稳定的底部空间。键盘收起、二级面板出现的过程中,工具栏不追逐每一个中间值;等新的状态稳定后,再继续响应变化。

普通话说,就是:切换时先稳住眼前的边界,不要把动画过程中的每个数字都当真。

还要分清屏幕下面究竟是什么

“底部有高度”也不一定表示完整软键盘正在显示。

外接键盘可能只留下短工具条,系统有时还会在软键盘消失后继续报告一块底部空间。如果应用只判断“高度是否大于零”,就可能为并不存在的键盘让出位置,留下空白;也可能把一条很矮的辅助栏当成完整键盘,让二级面板错误地关闭。

因此,工具栏需要结合键盘是否正在动画、当前高度形态和外接键盘状态,判断这个数值是否可信。对于底部手势安全区,也要补偿页面实际已经占用的空间,而不是看到一个系统高度就机械地再减一次。

这些技术状态不需要用户理解,但最终结果必须能被感受到:键盘、工具栏和二级面板切换时,底部不留莫名空白,按钮不突然跳走,正文也不被新的面板盖住。

稳定比逐帧“绝对实时”更重要

工具栏适配键盘,看起来是一个高度问题,实际更像是在判断系统处于什么状态。同一个高度,出现在键盘弹出途中、稳定输入时或外接键盘刚连接后,含义可能完全不同。

这项选择也有边界。分屏、浮动键盘、第三方输入法和特殊外接键盘组合仍可能带来新的形态,需要在真实设备上继续验证。为了稳定而暂时锁住高度,也意味着应用不会盲目追随每一帧变化。

但对正在写字的人来说,最重要的从来不是应用读取到了多精确的数字,而是操作前后的界面仍然连贯。像素只是结果;真正需要保持稳定的,是手指、按钮和正文之间那条不该乱跳的边界。