Перейти к основному содержимому

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, затем выполняет свайп вверх до (500, 400) за 1 секунду.

Свайп с начальной задержкой

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

Ожидает 2 секунды, затем опускается в (300, 800), удерживается 50ms и выполняет свайп вправо до (700, 800) за 1,5 секунды.

Многоточечный свайп с удержанием

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, затем медленно перетаскивается вверх до (540, 600) за 5 секунд.