alignmentFromPosition static method
Converts global drag position to alignment with rubber band resistance.
Implementation
static double alignmentFromPosition(
Offset globalPosition,
BuildContext context,
int itemCount,
) {
final box = context.findRenderObject()! as RenderBox;
final localPosition = box.globalToLocal(globalPosition);
final indicatorWidth = 1.0 / itemCount;
final draggableRange = 1.0 - indicatorWidth;
final padding = indicatorWidth / 2;
final rawRelativeX = (localPosition.dx / box.size.width).clamp(0.0, 1.0);
final normalizedX = (rawRelativeX - padding) / draggableRange;
final adjustedRelativeX = applyRubberBandResistance(normalizedX);
return (adjustedRelativeX * 2) - 1;
}