C3.26.1Double-tap-drag composition设计研究
该手势由双击的第二次按下不抬起、转为上下拖动构成
别名: 双击拖动 · tap-hold-drag · smart zoom drag
概念解释
双击拖动缩放不是两次点按,也不是普通拖动。它的构成是:第一次短接触抬起,第二次按下后不抬起,把这次接触转成沿竖直方向的拖动。第二次按下若马上抬起,就是普通双击(离散放大一档);若不抬起而移动,识别器改走连续缩放。复合发生在第二次接触的寿命里,第一次只用来武装识别器。
机制
第一次点按把状态机打进“可能双击”。第二次 down 到来时,系统还不能区分“再点一次”还是“按住拖”。抬起且位移很小 → 双击完成;位移超过拖动门且未抬起 → 进入拖动缩放,双击失败。因此它寄生在双击识别器上:没有第一次点按,一次按住拖只是平移。状态必须跨两次接触,任何把两次点击拆开处理的按钮都接不住这条链。
怎么研究
拆开三段成功率:第一次点按是否被记下、第二次按下是否被接上、拖动是否在竖直方向被认成缩放而不是平移。自变量包括两次按之间的间隔、第二次按下后开始移动的时间。因变量:被判成两次单击、被判成平移、被判成离散双击的比例。只测“会不会缩放”会把组合结构的哪一截断了测没。
边界
不识别双击的视图无法武装这条链。第一次点按若已经触发了导航(进入详情),第二次按下落在别的界面上,组合被拆断。触控笔的双击间隙更短,链更容易断。这条只定义组合方式,不定义上下该放大还是缩小,也不解释为什么地图爱用它。
怎么落地
- 把双击识别器做成可延续:第二次
down允许转入拖动,而不是在第二次down时就提交离散缩放。 - 在第二次按下后、位移未过门前不要跳倍率,避免拖动被先做成一次双击。
- 用脚本打“点、点、拖”和“点、点、抬”两条轨迹,断言只有前者进入连续缩放。