ScrollPhysics class

Determines the physics of a Scrollable widget.

For example, determines how the Scrollable will behave when the user reaches the maximum scroll extent or when the user stops scrolling.

When starting a physics Simulation, the current scroll position and velocity are used as the initial conditions for the particle in the simulation. The movement of the particle in the simulation is then used to determine the scroll position for the widget.

Instead of creating your own subclasses, parent can be used to combine ScrollPhysics objects of different types to get the desired scroll physics.

  • @immutable


ScrollPhysics({ScrollPhysics parent})
Creates an object with the default scroll physics.


allowImplicitScrolling bool
Whether a viewport is allowed to change its scroll position implicitly in response to a call to RenderObject.showOnScreen. [...]
dragStartDistanceMotionThreshold double
The minimum amount of pixel distance drags must move by to start motion the first time or after each time the drag motion stopped. [...]
maxFlingVelocity double
Scroll fling velocity magnitudes will be clamped to this value.
minFlingDistance double
The minimum distance an input pointer drag must have moved to to be considered a scroll fling gesture. [...]
minFlingVelocity double
The minimum velocity for an input pointer drag to be considered a scroll fling. [...]
parent ScrollPhysics
If non-null, determines the default behavior for each method. [...]
spring SpringDescription
The spring to use for ballistic simulations.
tolerance Tolerance
The tolerance to use for ballistic simulations.
hashCode int
The hash code for this object. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited


applyBoundaryConditions(ScrollMetrics position, double value) double
Determines the overscroll by applying the boundary conditions. [...]
applyPhysicsToUserOffset(ScrollMetrics position, double offset) double
Used by DragScrollActivity and other user-driven activities to convert an offset in logical pixels as provided by the DragUpdateDetails into a delta to apply (subtract from the current position) using ScrollActivityDelegate.setPixels. [...]
applyTo(ScrollPhysics ancestor) ScrollPhysics
If parent is null then return a ScrollPhysics with the same runtimeType where the parent has been replaced with the ancestor. [...]
buildParent(ScrollPhysics ancestor) ScrollPhysics
If parent is null then return ancestor, otherwise recursively build a ScrollPhysics that has ancestor as its parent. [...]
carriedMomentum(double existingVelocity) double
Returns the velocity carried on repeated flings. [...]
createBallisticSimulation(ScrollMetrics position, double velocity) Simulation
Returns a simulation for ballistic scrolling starting from the given position with the given velocity. [...]
recommendDeferredLoading(double velocity, ScrollMetrics metrics, BuildContext context) bool
Provides a heuristic to determine if expensive frame-bound tasks should be deferred. [...]
shouldAcceptUserOffset(ScrollMetrics position) bool
Whether the scrollable should let the user adjust the scroll offset, for example by dragging. [...]
toString() String
Returns a string representation of this object.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]


operator ==(dynamic other) bool
The equality operator. [...]