Screen:swipe()
画面上で 1 本指のスワイプを実行します。スワイプのパスは、指が順番に通過する 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) を設定すると、スワイプポイント間で指がリフトされなくなります。これにより、ユーザー補助サービス(Accessibility Service)を使用する Android 8.1 以降で滑らかな連続ジェスチャーが可能になります。ネイティブサービス(Native Service)では、この設定に関わらずスワイプは常に連続になります。
ゆっくりとしたドラッグ
Screen:swipe({
SwipePoint(540, 1800, 100, 0),
SwipePoint(540, 600, 50, 5000),
})
(540, 1800) でタッチダウンし、100ms ホールドした後、5 秒かけてゆっくりと (540, 600) へ上にドラッグします。