ExtendedScrollController class
Controls a scrollable widget.
Scroll controllers are typically stored as member variables in State objects and are reused in each State.build. A single scroll controller can be used to control multiple scrollable widgets, but some operations, such as reading the scroll offset, require the controller to be used with a single scrollable widget.
A scroll controller creates a ScrollPosition
to manage the state specific
to an individual Scrollable widget. To use a custom ScrollPosition
,
subclass ExtendedScrollController and override createScrollPosition.
A ExtendedScrollController is a Listenable. It notifies its listeners whenever
any of the attached ScrollPosition
s notify their listeners (i.e.
whenever any of them scroll). It does not notify its listeners when the list
of attached ScrollPosition
s changes.
Typically used with ListView, GridView, CustomScrollView.
See also:
- ListView, GridView, CustomScrollView, which can be controlled by a ExtendedScrollController.
- Scrollable, which is the lower-level widget that creates and associates
ScrollPosition
objects with ExtendedScrollController objects. - PageController, which is an analogous object for controlling a PageView.
ScrollPosition
, which manages the scroll offset for an individual scrolling widget.- ScrollNotification and NotificationListener, which can be used to watch the scroll position without using a ExtendedScrollController.
- Inheritance
-
- Object
- ChangeNotifier
- ExtendedScrollController
- Implementers
Constructors
- ExtendedScrollController.new({double initialScrollOffset = 0.0, bool keepScrollOffset = true, String? debugLabel})
- Creates a controller for a scrollable widget.
Properties
- debugLabel → String?
-
A label that is used in the toString output. Intended to aid with
identifying scroll controller instances in debug output.
final
- hasClients → bool
-
Whether any
ScrollPosition
objects have attached themselves to the ExtendedScrollController using the attach method.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- initialScrollOffset → double
-
The initial value to use for offset.
no setter
- keepScrollOffset → bool
-
Each time a scroll completes, save the current scroll offset with
PageStorage and restore it if this controller's scrollable is recreated.
final
- offset → double
-
The current scroll offset of the scrollable widget.
no setter
- position → ScrollPosition
-
Returns the attached
ScrollPosition
, from which the actual scroll offset of the ScrollView can be obtained.no setter -
positions
→ Iterable<
ScrollPosition> -
The currently attached positions.
no setter
- 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, {required Duration duration, required Curve curve}) → Future< void> - Animates the position from its current value to the given value.
-
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).
override
-
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.
-
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.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited