メインコンテンツまでスキップ

Screen:swipe()

画面上で 1 本指のスワイプを実行します。スワイプのパスは、指が順番に通過する 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) を設定すると、スワイプポイント間で指がリフトされなくなります。これにより、ユーザー補助サービス(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) へ上にドラッグします。