跳到主要内容

Screen:multiSwipe()

同时在屏幕上执行最多 10 根手指的滑动。每根手指都按照自身独立的参数在自己的时间轴上运作——按下、移动、保持和抬起。

签名

Screen:multiSwipe(fingers: List<List<SwipePoint>>): void

返回值

void


兼容版本1.0.0.26 及以上

参数

参数类型描述
fingersList<List<SwipePoint>>手指路径列表。每条手指路径是一个 SwipePoint 值列表。每根手指至少 2 个点,最多 10 根手指。

multiSwipe 中 SwipePoint 的行为

每条手指路径都是一个 SwipePoint(x, y, holdDuration, swipeDuration) 列表。每个参数的含义取决于该点在列表中的位置:

第一个点(起始位置):

  • swipeDuration — 手指按下前的初始延迟(毫秒)
  • holdDuration — 在起始位置保持多久后再开始移动

后续的点(移动目标):

  • swipeDuration — 从前一个点移动到该点所用的时间(毫秒)
  • holdDuration — 到达该点后保持多久

最后一个点

  • holdDuration — 在最终位置上手指抬起前的收尾保持时间
信息

所有手指会在耗时最长的手指动作完成后一起抬起。

示例

双指上滑

Screen:multiSwipe({
{
SwipePoint(500, 800, 50, 0),
SwipePoint(500, 400, 50, 1000),
},
{
SwipePoint(600, 800, 50, 0),
SwipePoint(600, 400, 50, 1000),
},
})

两根手指在 1 秒内同时向上滑动。

双指缩放

Screen:multiSwipe({
{
SwipePoint(400, 600, 50, 0),
SwipePoint(200, 400, 50, 1500),
},
{
SwipePoint(600, 600, 50, 0),
SwipePoint(800, 800, 50, 1500),
},
})

两根手指在 1.5 秒内从中心向外分开移动。

错开开始并保持

Screen:multiSwipe({
{
SwipePoint(935, 1533, 50, 2000),
SwipePoint(658, 1234, 5000, 2000),
SwipePoint(207, 1372, 50, 2000),
},
{
SwipePoint(794, 1714, 50, 3000),
SwipePoint(240, 1489, 50, 2000),
SwipePoint(694, 1170, 50, 2000),
},
})

时间轴:

时间手指 1手指 2
0ms等待中(2000ms)等待中(3000ms)
2000ms在 (935, 1533) 按下等待中...
2050ms移动到 (658, 1234)等待中...
3000ms移动中...在 (794, 1714) 按下
3050ms移动中...移动到 (240, 1489)
4050ms到达,保持 5000ms移动中...
5050ms保持中...到达,保持 50ms
5100ms保持中...移动到 (694, 1170)
7100ms保持中...到达,保持 50ms
9050ms移动到 (207, 1372)等待中...
11050ms到达,保持 50ms等待中...
11100ms所有手指一起抬起

限制

  • 最多 10 根手指
  • 每根手指必须至少有 2 个 SwipePoint
  • 手势总时长不得超过约 60 秒
  • 第一个点的 swipeDuration0 时会被当作 1ms 处理(即瞬时)