Screen:swipe()
在屏幕上执行单指滑动。滑动路径由一系列 SwipePoint 值定义,手指会依次经过这些点。
签名
Screen:swipe(swipePoints: List<SwipePoint>, params?: SwipeParams): void
返回值
void
参数
| 参数 | 类型 | 描述 |
|---|---|---|
| swipePoints | List<SwipePoint> | 手指依次经过的点列表。至少 2 个点。 |
| params | SwipeParams | 可选。控制滑动行为,例如连续模式和延迟。 |
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)。