FixedExtentScrollController class

A controller for scroll views whose items have the same size.

Similar to a standard ScrollController but with the added convenience mechanisms to read and go to item indices rather than a raw pixel scroll offset.

See also:



FixedExtentScrollController({int initialItem = 0, ScrollControllerCallback? onAttach, ScrollControllerCallback? onDetach})
Creates a scroll controller for scrollables whose items have the same size.


debugLabel String?
A label that is used in the toString output. Intended to aid with identifying scroll controller instances in debug output.
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
initialItem int
The page to show when first creating the scroll view.
initialScrollOffset double
The initial value to use for offset.
no setterinherited
keepScrollOffset bool
Each time a scroll completes, save the current scroll offset with PageStorage and restore it if this controller's scrollable is recreated.
offset double
The current scroll offset of the scrollable widget.
no setterinherited
onAttach ScrollControllerCallback?
Called when a ScrollPosition is attached to the scroll controller.
onDetach ScrollControllerCallback?
Called when a ScrollPosition is detached from the scroll controller.
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
selectedItem int
The currently selected item index that's closest to the center of the viewport.
no setter


addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
animateTo(double offset, {required Duration duration, required Curve curve}) Future<void>
Animates the position from its current value to the given value.
animateToItem(int itemIndex, {required Duration duration, required Curve curve}) Future<void>
Animates the controlled scroll view to the given item index.
attach(ScrollPosition position) → void
Register the given position with this controller.
createScrollPosition(ScrollPhysics physics, ScrollContext context, ScrollPosition? oldPosition) ScrollPosition
Creates a ScrollPosition for use by a Scrollable widget.
debugFillDescription(List<String> description) → void
Add additional information to the given description for use by toString.
detach(ScrollPosition position) → void
Unregister the given position with this controller.
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).
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.
jumpToItem(int itemIndex) → void
Changes which item index is centered in the controlled scroll view.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
notifyListeners() → void
Call all the registered listeners.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
toString() String
A string representation of this object.


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