ScrollPositionWithSingleContext class

A scroll position that manages scroll activities for a single ScrollContext.

This class is a concrete subclass of ScrollPosition logic that handles a single ScrollContext, such as a Scrollable. An instance of this class manages ScrollActivity instances, which change what content is visible in the Scrollable's Viewport.

See also:

Inheritance
Implements

Constructors

ScrollPositionWithSingleContext({@required ScrollPhysics physics, @required ScrollContext context, double initialPixels: 0.0, bool keepScrollOffset: true, ScrollPosition oldPosition, String debugLabel })
Create a ScrollPosition object that manages its behavior using ScrollActivity objects. [...]

Properties

axisDirection AxisDirection
The direction in which the scroll view scrolls.
read-only
userScrollDirection ScrollDirection
The direction in which the user is trying to change pixels, relative to the viewport's RenderViewport.axisDirection. [...]
read-only
activity ScrollActivity
The currently operative ScrollActivity. [...]
@protected, read-only, inherited
atEdge bool
Whether the pixels value is exactly at the minScrollExtent or the maxScrollExtent.
read-only, inherited
axis Axis
The axis in which the scroll view scrolls.
read-only, inherited
context ScrollContext
Where the scrolling is taking place. [...]
final, inherited
debugLabel String
A label that is used in the toString output. Intended to aid with identifying animation controller instances in debug output.
final, inherited
extentAfter double
The quantity of content conceptually "below" the currently visible content of the viewport in the scrollable. This is the content below the content described by extentInside.
read-only, inherited
extentBefore double
The quantity of content conceptually "above" the currently visible content of the viewport in the scrollable. This is the content above the content described by extentInside.
read-only, inherited
extentInside double
The quantity of visible content. [...]
read-only, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
hasListeners bool
Whether any listeners are currently registered. [...]
@protected, read-only, inherited
haveDimensions bool
Whether viewportDimension, minScrollExtent, maxScrollExtent, outOfRange, and atEdge are available yet. [...]
read-only, inherited
isScrollingNotifier ValueNotifier<bool>
This notifier's value is true if a scroll is underway and false if the scroll position is idle. [...]
final, inherited
keepScrollOffset bool
Save the current scroll offset with PageStorage and restore it if this scroll position's scrollable is recreated. [...]
final, inherited
maxScrollExtent double
The maximum in-range value for pixels. [...]
read-only, inherited
minScrollExtent double
The minimum in-range value for pixels. [...]
read-only, inherited
outOfRange bool
Whether the pixels value is outside the minScrollExtent and maxScrollExtent.
read-only, inherited
physics ScrollPhysics
How the scroll position should respond to user input. [...]
final, inherited
pixels double
The number of pixels to offset the children in the opposite of the axis direction. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
viewportDimension double
The extent of the viewport along the axisDirection.
read-only, inherited

Methods

absorb(ScrollPosition other) → void
Take any current applicable state from the given ScrollPosition. [...]
animateTo(double to, { Duration duration, Curve curve }) Future<Null>
Animates the position from its current value to the given value. [...]
applyNewDimensions() → void
Notifies the activity that the dimensions of the underlying viewport or contents have changed. [...]
applyUserOffset(double delta) → void
Updates the scroll position by the given amount. [...]
beginActivity(ScrollActivity newActivity) → void
Change the current activity, disposing of the old one and sending scroll notifications as necessary. [...]
correctBy(double correction) → void
debugFillDescription(List<String> description) → void
dispose() → void
drag(DragStartDetails details, VoidCallback dragCancelCallback) Drag
Start a drag activity corresponding to the given DragStartDetails. [...]
goBallistic(double velocity) → void
Start a physics-driven simulation that settles the pixels position, starting at a particular velocity. [...]
goIdle() → void
Terminate the current activity and start an idle activity.
hold(VoidCallback holdCancelCallback) ScrollHoldController
Stop the current activity and start a HoldScrollActivity.
jumpTo(double value) → void
Jumps the scroll position from its current value to the given value, without animation, and without checking if the new value is in range. [...]
jumpToWithoutSettling(double value) → void
Deprecated. Use jumpTo or a custom ScrollPosition instead.
@Deprecated('This will lead to bugs.')
setPixels(double newPixels) double
Update the scroll position (pixels) to a given pixel value. [...]
updateUserScrollDirection(ScrollDirection value) → void
Set userScrollDirection to the given value. [...]
@protected
addListener(VoidCallback listener) → void
Register a closure to be called when the object changes. [...]
inherited
applyBoundaryConditions(double value) double
Returns the overscroll by applying the boundary conditions. [...]
@protected, inherited
applyContentDimensions(double minScrollExtent, double maxScrollExtent) bool
Called when the viewport's content extents are established. [...]
inherited
applyViewportDimension(double viewportDimension) bool
Called when the viewport's extents are established. [...]
inherited
copyWith({double minScrollExtent, double maxScrollExtent, double pixels, double viewportDimension, AxisDirection axisDirection }) ScrollMetrics
Creates a ScrollMetrics that has the same properties as this object. [...]
inherited
correctPixels(double value) → void
Change the value of pixels to the new value, without notifying any customers. [...]
inherited
didEndScroll() → void
Called by beginActivity to report when an activity has ended. [...]
inherited
didOverscrollBy(double value) → void
Called by setPixels to report overscroll when an attempt is made to change the pixels position. Overscroll is the amount of change that was not applied to the pixels value.
inherited
didStartScroll() → void
Called by beginActivity to report when an activity has started.
inherited
didUpdateScrollDirection(ScrollDirection direction) → void
Dispatches a notification that the userScrollDirection has changed. [...]
inherited
didUpdateScrollPositionBy(double delta) → void
Called by setPixels to report a change to the pixels position.
inherited
ensureVisible(RenderObject object, { double alignment: 0.0, Duration duration: Duration.zero, Curve curve: Curves.ease }) Future<Null>
Animates the position such that the given object is as visible as possible by just scrolling this position.
inherited
forcePixels(double value) → void
Change the value of pixels to the new value, and notify any customers, but without honoring normal conventions for changing the scroll offset. [...]
@protected, inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
notifyListeners() → void
Call all the registered listeners. [...]
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes. [...]
inherited
restoreScrollOffset() → void
Called whenever the ScrollPosition is created, to restore the scroll offset if possible. [...]
@protected, inherited
saveScrollOffset() → void
Called whenever scrolling ends, to store the current scroll offset in a storage mechanism with a lifetime that matches the app's lifetime. [...]
@protected, inherited
toString() String
Returns a string representation of this object.
inherited

Operators

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