Жесты свайпа

Расширение gesture выполняет действия, когда пользователь делает свайп по элементу вверх, вниз, влево или вправо.

Пример
{
  "type": "text",
  "text": "Последний свайп: @{last_swipe}",
  "extensions": [
    {
      "id": "gesture",
      "params": {
        "swipe_left": [
          {
            "log_id": "swipe_left",
            "typed": {
              "type": "set_variable",
              "variable_name": "last_swipe",
              "value": {
                "type": "string",
                "value": "left"
              }
            }
          }
        ],
        "swipe_right": [
          {
            "log_id": "swipe_right",
            "typed": {
              "type": "set_variable",
              "variable_name": "last_swipe",
              "value": {
                "type": "string",
                "value": "right"
              }
            }
          }
        ]
      }
    }
  ]
}

В этом примере свайп влево или вправо записывает направление в строковую переменную last_swipe.

Параметры

Параметры

Описание

id

Идентификатор расширения.

swipe_up

Массив действий, которые выполняются при свайпе вверх. Необязательный параметр.

swipe_down

Массив действий, которые выполняются при свайпе вниз. Необязательный параметр.

swipe_left

Массив действий, которые выполняются при свайпе влево. Необязательный параметр.

swipe_right

Массив действий, которые выполняются при свайпе вправо. Необязательный параметр.

Задайте хотя бы один из параметров.

Подключение

build.gradle

dependencies {
    implementation "com.yandex.div:div-gesture:${versions.divkit}"
}

В коде:

val gestureExtensionHandler = DivGestureExtensionHandler(
    parsingErrorLoggerFactory = object : ParsingErrorLoggerFactory {
        override fun create(key: String) = ParsingErrorLogger.LOG
    }
)
val divConfiguration = DivConfiguration.Builder(imageLoader)
    .extension(gestureExtensionHandler)
    .build()

ParsingErrorLoggerFactory создает логгер, который получает ошибки разбора действий из параметра с именем key.

DivKitComponents(
  ...
  extensionHandlers: [
    GestureExtensionHandler()
  ]
)
import { Gesture } from '@divkitframework/divkit/client';

const map = new Map();

map.set('gesture', Gesture);

render({
    id: 'test',
    target: element,
    json: {},
    extensions: map
});

Узнать больше

Вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: https://t.me/divkit_community_ru.

Репозиторий DivKit

Следующая