Перейти к содержанию

DragSession

Состояние и контроллер активного жеста перетаскивания, управляющий координатами указателя, активной целью сброса, позиционированием ghost, индикаторами вставки и автопрокруткой.

Обзор

DragSession представляет активный процесс перетаскивания drag-and-drop.

Обязанности сессии

  • Отслеживание указателя: Хранит текущие координаты (pointerX, pointerY), координаты нажатия и величину смещения (deltaX, deltaY).
  • Координация цели сброса: Отслеживает текущий подтвержденный виджет dropTarget().
  • Отрисовка в оверлее: Управляет положением DragGhost и индикатора вставки (showIndicator, clearIndicator).
  • Автопрокрутка: Координирует плавную прокрутку при поднесении курсора к краям скроллируемых контейнеров.

Отображение индикатора сброса

session.showIndicator(x, y, width, 2.0f, MutableColor.rgba(0.2f, 0.6f, 1.0f, 1.0f));

Связанные ссылки

  • DragController: Контроллер жеста перетаскивания, подключаемый к любому виджету через композицию для инициации drag-and-drop с ghost-предпросмотром, порогом смещения и автопрокруткой.
  • DropController: Контроллер цели сброса, подключаемый к любому виджету через композицию для фильтрации payload и обработки событий drag enter, over, leave и drop.

API

DragSession::active()

Проверяет, продолжается ли данная сессия перетаскивания и не была ли отменена.

Возвращает boolean: True, если сессия перетаскивания активна и не отменена..

DragSession::cancel()

Немедленно прерывает сессию перетаскивания с результатом CANCELLED.

DragSession::clearIndicator()

Скрывает индикатор вставки оверлея.

DragSession::deltaX()

Возвращает горизонтальное смещение указателя от начальной точки нажатия.

Возвращает float: Горизонтальное смещение от начальной точки в пикселях..

DragSession::deltaY()

Возвращает вертикальное смещение указателя от начальной точки нажатия.

Возвращает float: Вертикальное смещение от начальной точки в пикселях..

DragSession::dragged()

Возвращает логический виджет, перемещаемый в ходе операции.

Возвращает Widget: Логический виджет, перемещаемый операцией перетаскивания..

DragSession::dropTarget()

Возвращает текущий виджет, подтвердивший прием сброса, или null.

Возвращает Widget: Текущий виджет-кандидат на прием сброса или null..

DragSession::ghost()

Возвращает отрисовщик DragGhost, отображаемый в оверлее.

Возвращает DragGhost: Отрисовщик DragGhost, используемый для предпросмотра в оверлее..

DragSession::ghostOffsetX()

Вычисляет горизонтальное экранное смещение для размещения ghost-представления.

Возвращает float: Горизонтальное смещение для размещения ghost-отображения..

DragSession::ghostOffsetX(Widget, float)

Вычисляет экранное смещение X для конкретного виджета с учетом начальных координат.

Параметр Тип Описание
widget Widget Опорный виджет для расчета координат.
initialX float Начальная координата X до перетаскивания.

Возвращает float: Горизонтальное смещение для размещения ghost-отображения..

DragSession::ghostOffsetY()

Вычисляет вертикальное экранное смещение для размещения ghost-представления.

Возвращает float: Вертикальное смещение для размещения ghost-отображения..

DragSession::ghostOffsetY(Widget, float)

Вычисляет экранное смещение Y для конкретного виджета с учетом начальных координат.

Параметр Тип Описание
widget Widget Опорный виджет для расчета координат.
initialY float Начальная координата Y до перетаскивания.

Возвращает float: Вертикальное смещение для размещения ghost-отображения..

DragSession::handle()

Возвращает виджет-ручку, инициировавший жест перетаскивания.

Возвращает Widget: Виджет-ручка, инициировавший перетаскивание..

DragSession::indicatorColor()

Возвращает цвет текущего индикатора вставки.

Возвращает ColorView: Цвет активного прямоугольника индикатора..

DragSession::indicatorHeight()

Возвращает высоту текущего индикатора вставки.

Возвращает float: Высота активного прямоугольника индикатора..

DragSession::indicatorVisible()

Проверяет, отображается ли индикатор вставки в данный момент.

Возвращает boolean: True, если индикатор сброса отображается в данный момент..

DragSession::indicatorWidth()

Возвращает ширину текущего индикатора вставки.

Возвращает float: Ширина активного прямоугольника индикатора..

DragSession::indicatorX()

Возвращает координату X текущего индикатора вставки.

Возвращает float: Координата X активного прямоугольника индикатора..

DragSession::indicatorY()

Возвращает координату Y текущего индикатора вставки.

Возвращает float: Координата Y активного прямоугольника индикатора..

DragSession::payload()

Возвращает неизменяемый объект данных DragPayload текущего жеста.

Возвращает DragPayload: Передаваемый объект данных payload..

DragSession::pointerX()

Возвращает текущую координату X указателя мыши в координатах оверлея.

Возвращает float: Текущая корневая координата X указателя..

DragSession::pointerY()

Возвращает текущую координату Y указателя мыши в координатах оверлея.

Возвращает float: Текущая корневая координата Y указателя..

DragSession::pressX()

Возвращает координату X указателя в момент первоначального нажатия.

Возвращает float: Начальная корневая координата X в момент нажатия..

DragSession::pressY()

Возвращает координату Y указателя в момент первоначального нажатия.

Возвращает float: Начальная корневая координата Y в момент нажатия..

DragSession::root()

Возвращает корневой виджет, содержащий оверлей перетаскивания.

Возвращает Widget: Корневой виджет, содержащий слой оверлея перетаскивания..

DragSession::showIndicator(float, float, float, float, ColorView)

Активирует и позиционирует визуальный прямоугольник индикатора вставки в оверлее.

Параметр Тип Описание
x float Координата X прямоугольника индикатора.
y float Координата Y прямоугольника индикатора.
width float Ширина прямоугольника индикатора.
height float Высота прямоугольника индикатора.
color ColorView Цвет прямоугольника индикатора.

DragSession::uiContext()

Возвращает связанный контекст пользовательского интерфейса.

Возвращает UIContext: Контекст UI, связанный с данной сессией..