onPanUpdate method
void
onPanUpdate(
- dynamic details
Implementation
void onPanUpdate(details) {
final dx = details.delta.dx;
final dy = details.delta.dy;
if (currentDirection == 'none') {
if (dx.abs() > dy.abs()) {
currentDirection = 'horizontal';
} else if (dy.abs() > dx.abs()) {
currentDirection = 'vertical';
}
}
// Apply movement based on current direction
if (currentDirection == 'horizontal') {
onHorizontalUpdate(DragUpdateDetails(
globalPosition: details.globalPosition,
localPosition: details.localPosition,
delta: Offset(details.delta.dx, 0.0),
primaryDelta: dx,
));
} else if (currentDirection == 'vertical') {
onVerticalDragUpdate(DragUpdateDetails(
globalPosition: details.globalPosition,
localPosition: details.localPosition,
delta: Offset(0.0, details.delta.dy),
primaryDelta: dy,
));
}
// log('x ${xAxisVal.value.abs()} , y ${dyOffsetVerticalUpdate.value.abs()}');
// Allow switching back only when both are reset
if (xAxisVal.value == 0.0 && dyOffsetVerticalUpdate.value.abs() == 0.0) {
currentDirection = 'none';
onHorizontalEnd(details);
isMovingVertical.value = false;
isReachedLock.value = false;
// onVerticalDragEnd(details);
// roundedContainerVal.value = 0;
}
}