跳到主要内容

Screen:swipe()

在屏幕上执行单指滑动。滑动路径由一系列 SwipePoint 值定义,手指会依次经过这些点。

签名

Screen:swipe(swipePoints: List<SwipePoint>, params?: SwipeParams): void

返回值

void

参数

参数类型描述
swipePointsList<SwipePoint>手指依次经过的点列表。至少 2 个点。
paramsSwipeParams可选。控制滑动行为,例如连续模式和延迟。

SwipePoint 行为

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

第一个点(起始位置):

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

后续的点(移动目标):

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

最后一个点

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

示例

简单滑动

Screen:swipe({
SwipePoint(500, 1200, 50, 0),
SwipePoint(500, 400, 50, 1000),
})

手指立即在 (500, 1200) 按下,保持 50ms,然后在 1 秒内向上滑动到 (500, 400)。

带初始延迟的滑动

Screen:swipe({
SwipePoint(300, 800, 50, 2000),
SwipePoint(700, 800, 50, 1500),
})

等待 2 秒,然后在 (300, 800) 按下,保持 50ms,并在 1.5 秒内向右滑动到 (700, 800)。

带保持的多点滑动

Screen:swipe({
SwipePoint(100, 500, 50, 0),
SwipePoint(400, 500, 3000, 1000),
SwipePoint(400, 900, 50, 1000),
})

时间轴:

时间动作
0ms在 (100, 500) 按下
50ms开始移动到 (400, 500)
1050ms到达 (400, 500),保持 3000ms
4050ms开始移动到 (400, 900)
5050ms到达 (400, 900),保持 50ms
5100ms手指抬起

手指向右滑动,停顿 3 秒,然后向下滑动。

使用 SwipeParams 的连续滑动

Screen:swipe({
SwipePoint(200, 600, 50, 0),
SwipePoint(500, 300, 50, 2000),
}, SwipeParams():setContinue(true))

设置 setContinue(true) 时,手指在各个滑动点之间不会抬起。这样可以在 Android 8.1 及以上版本中借助无障碍服务实现平滑的连续手势。而在原生服务上,无论该设置如何,滑动始终是连续的。

缓慢拖动

Screen:swipe({
SwipePoint(540, 1800, 100, 0),
SwipePoint(540, 600, 50, 5000),
})

在 (540, 1800) 按下,保持 100ms,然后在 5 秒内缓慢向上拖动到 (540, 600)。