applyResistance method

double applyResistance(
  1. double rawPosition,
  2. double screenHeight, {
  3. required double resistance,
})

Applies rubber-band resistance when dragging beyond bounds.

Implementation

double applyResistance(
  double rawPosition,
  double screenHeight, {
  required double resistance,
}) {
  final minPos = positionForState(minState, screenHeight);
  final maxPos = positionForState(maxState, screenHeight);

  if (rawPosition < minPos) {
    final overflow = minPos - rawPosition;
    return minPos - overflow * resistance;
  }
  if (rawPosition > maxPos) {
    final overflow = rawPosition - maxPos;
    return maxPos + overflow * resistance;
  }
  return rawPosition;
}