C3.04.1Long-press versus immediate drag start设计研究
拖拽由长按或直接按下起始,两者语义不同
别名: 按住拖动 · 直接拖动 · drag arming
概念解释
触屏上把对象从一处移到另一处,有两种起始方式。一种是先按住,直到对象被“揭下来”,再移动;一种是按下后立刻跟着走,滑块、色相环、画布上的锚点常用后一种。两种都叫拖拽,但它们声明的意图不同:前者是“我要从滚动或其他手势里把这个对象单独拿出来”,后者是“这个控件的本职就是被拖”。
机制
列表、网格的默认纵向运动是滚内容,不是搬对象。若按下立刻把触点交给拖拽,一次普通翻页会把某行带走。长按起始等于加了一道显式的武装:时长用来告诉识别器“现在进入搬运,滚动让路”。直接按下起始则要求对象自己就是连续操纵器,周围没有竞争性的滚动,或命中区被做成专用手柄。两种武装改变的是手势竞争的胜者,不是拖动跟手本身的运动学。拾起后对象通常进入浮动层,落点语义才开始;直接拖动往往没有“拾起”这一相,位移即取值。
怎么研究
在可滚动列表里做搬运任务,比较长按武装与按下即拖两种识别器。自变量包括武装时长、是否显示拖动手柄、行高、滚动惯性是否开启。因变量为误把滚动当成搬运的次数、本意搬运却翻了页的次数、武装阶段的放弃率。把滑块类控件和列表行混在同一实验里会把两种语义搅在一起,应分任务报告。
边界
桌面上按住标题栏拖窗口是直接按下起始,因为指针设备没有滚动手势跟它抢。把那套习惯搬到手机列表会翻车。绘图应用里画笔本身就是拖,再套长按武装会把每一笔弄得发黏。系统若已经用长按弹出菜单,再拿长按当拖拽武装,两条第二语义会撞车;这时拖拽必须改走手柄或编辑模式。把一串图标排顺序的专用交互会引入让位动画等后续问题,那是排序手势,不是这里的起始语义。
怎么落地
- 活在滚动容器里的对象用长按或可见手柄武装再拖;本身就是连续值的控件用按下即拖,并保证命中区不和翻页抢手势。
- 武装成功要有状态跳变(浮起、阴影、邻项让出缺口),让人知道现在走的是搬运而不是滚动。
- 分别录“只想翻列表”和“想把第三项搬到第七项”。前者不该出现浮起,后者不该先滚走一屏。两种失败对应两种起始用错了场景。