onHorizontalDragDown method

GestureDetector onHorizontalDragDown(
  1. GestureDragDownCallback onHorizontalDragDown, {
  2. HitTestBehavior? behavior,
  3. bool excludeFromSemantics = false,
  4. DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  5. bool trackpadScrollCausesScale = false,
  6. Offset trackpadScrollToScaleFactor = kDefaultTrackpadScrollToScaleFactor,
  7. Set<PointerDeviceKind>? supportedDevices,
})

Wraps the widget in a GestureDetector that responds to horizontal drag down events.

This method is called when a horizontal drag gesture begins. Horizontal drag gestures are constrained to move only in the horizontal direction (left and right). This is useful for implementing horizontal scrollable content, sliders, carousels, or other UI elements that should only respond to horizontal movement.

Parameters:

  • onHorizontalDragDown: The callback to execute when a horizontal drag down occurs. Provides DragDownDetails with information about the initial touch position.
  • behavior: How the gesture detector should behave during hit testing.
  • excludeFromSemantics: Whether to exclude from semantic tree. Defaults to false.
  • dragStartBehavior: When drag gestures should start. Defaults to DragStartBehavior.start.
  • trackpadScrollCausesScale: Whether trackpad scrolling causes scaling. Defaults to false.
  • trackpadScrollToScaleFactor: Scale factor for trackpad scroll conversion.
  • supportedDevices: Set of supported pointer device kinds.

Returns a GestureDetector widget that responds to horizontal drag down events.

Example:

Container(
  width: 200,
  child: Text('Drag horizontally'),
).onHorizontalDragDown((details) {
  print('Horizontal drag started at: ${details.localPosition}');
  // Initialize horizontal drag state
});

Implementation

GestureDetector onHorizontalDragDown(
  GestureDragDownCallback onHorizontalDragDown, {
  HitTestBehavior? behavior,
  bool excludeFromSemantics = false,
  DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  bool trackpadScrollCausesScale = false,
  Offset trackpadScrollToScaleFactor = kDefaultTrackpadScrollToScaleFactor,
  Set<PointerDeviceKind>? supportedDevices,
}) {
  return GestureDetector(
    onHorizontalDragDown: onHorizontalDragDown,
    behavior: behavior,
    excludeFromSemantics: excludeFromSemantics,
    dragStartBehavior: dragStartBehavior,
    trackpadScrollCausesScale: trackpadScrollCausesScale,
    trackpadScrollToScaleFactor: trackpadScrollToScaleFactor,
    supportedDevices: supportedDevices,
    child: this,
  );
}