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
-
- Object
- ChangeNotifier
- ScrollController
- IndexedScrollController
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 theoffset
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 tooffset
, 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