goBallistic method

  1. @override
void goBallistic(
  1. double velocity
)
override

Start a physics-driven simulation that settles the pixels position, starting at a particular velocity.

This method defers to ScrollPhysics.createBallisticSimulation, which typically provides a bounce simulation when the current position is out of bounds and a friction simulation when the position is in bounds but has a non-zero velocity.

The velocity should be in logical pixels per second.

Implementation

@override
void goBallistic(double velocity) {
  if (!listShouldScroll &&
      (!(controllerValue == controller.maxPanelSize || controllerValue == controller.minPanelSize) ||
          (controllerValue < controller.maxPanelSize && velocity < 0) ||
          (controllerValue > controller.minPanelSize && velocity > 0))) {
    super.goBallistic(0);
    if (controllerValue < controller.maxPanelSize && velocity > 300) {
      controller.animateTo(controller.maxPanelSize);
    } else if (controllerValue > controller.defaultPanelSize) {
      if (velocity < -2000) {
        controller.animateTo(controller.minPanelSize);
      } else if (velocity < -300) {
        controller.animateTo(controller.defaultPanelSize);
      }
    } else if (controllerValue < controller.defaultPanelSize && velocity < -300) {
      controller.animateTo(controller.minPanelSize);
    }
  } else {
    super.goBallistic(velocity);
  }
}