IndexedScrollController class

Provides scroll with infinite bounds, and keeps a scroll-position and a origin-index. The scroll-position is the number of pixels of scroll, considering the item at origin-index as the origin (0.0). So, for example, if you have scroll-position 10.0 and origin-index 15, then you are 10 pixels after the 15th item.

Besides regular ScrollController methods, offers IndexedScrollController.jumpToIndex and IndexedScrollController.animateToIndex.

Inheritance

Constructors

IndexedScrollController({int initialIndex = 0, double initialScrollOffset = 0.0, bool keepScrollOffset = true, String? debugLabel})

Properties

debugLabel String?
A label that is used in the toString output. Intended to aid with identifying scroll controller instances in debug output.
finalinherited
hasClients bool
Whether any ScrollPosition objects have attached themselves to the ScrollController using the attach method.
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
initialIndex int
final
initialScrollOffset double
The initial value to use for offset.
no setteroverride
keepScrollOffset bool
Each time a scroll completes, save the current scroll offset with PageStorage and restore it if this controller's scrollable is recreated.
finalinherited
offset double
The current scroll offset of the scrollable widget.
no setterinherited
onAttach ScrollControllerCallback?
Called when a ScrollPosition is attached to the scroll controller.
finalinherited
onDetach ScrollControllerCallback?
Called when a ScrollPosition is detached from the scroll controller.
finalinherited
originIndex int
no setter
position ScrollPosition
Returns the attached ScrollPosition, from which the actual scroll offset of the ScrollView can be obtained.
no setterinherited
positions Iterable<ScrollPosition>
The currently attached positions.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
animateTo(double offset, {Duration duration = const Duration(milliseconds: 750), Curve curve = Curves.decelerate}) Future<void>
Goes to origin-index 0, and then animates the position from its current value to the given offset.
override
animateToIndex(int index, {Duration duration = const Duration(milliseconds: 750), Curve curve = Curves.decelerate}) Future<void>
If the current origin-index is already the same as the given index, animates the position from its current value to the 0.0 position relative to the origin-index.
animateToIndexAndOffset({required int index, required double offset, Duration duration = const Duration(milliseconds: 750), Curve curve = Curves.decelerate}) Future<void>
If the current origin-index is already the same as the given index, animates the position from its current value to the offset position relative to the origin-index.
animateToRelative(double offset, {Duration duration = const Duration(milliseconds: 750), Curve curve = Curves.decelerate}) Future<void>
Same as animateTo but will move offset from the current position.
animateToWithSameOriginIndex(double offset, {Duration duration = const Duration(milliseconds: 750), Curve curve = Curves.decelerate}) Future<void>
Same as animateTo but will keep the current origin-index.
attach(ScrollPosition position) → void
Register the given position with this controller.
inherited
createScrollPosition(ScrollPhysics physics, ScrollContext context, ScrollPosition? oldPosition) ScrollPosition
Creates a ScrollPosition for use by a Scrollable widget.
override
debugFillDescription(List<String> description) → void
Add additional information to the given description for use by toString.
inherited
detach(ScrollPosition position) → void
Unregister the given position with this controller.
inherited
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener will throw after the object is disposed).
inherited
jumpTo(double offset) → void
Goes to origin-index 0, and then jumps the scroll position from its current value to the given offset, without animation, and without checking if the new value is in range.
override
jumpToIndex(int index) → void
Jumps the origin-index to the given index, and the scroll-position to 0.0, without animation, and without checking if the new value is in range.
jumpToIndexAndOffset({required int index, required double offset}) → void
Jumps the origin-index to the given index, and the scroll-position to offset, without animation, and without checking if the new value is in range.
jumpToRelative(double offset) → void
Same as jumpTo but will move offset from the current position.
jumpToWithSameOriginIndex(double offset) → void
Same as jumpTo but will keep the current origin-index.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent 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
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited