RetainableScrollController class
A ScrollController enables retaining the current scroll offset.
When inserting/adding a new item into the first index of ListView.children,
it would scroll up/down pixels that represents the main axis size of the new item,
since the ScrollPosition.maxScrollExtent is changed after layouting the new added item.
However, the ScrollPosition.pixels does not change, and therefore, the existing items would
try to use the old pixels to calculate their painting offsets.
By using retainOffset, RetainableScrollPosition would try to correct existing items' scroll offset, if the max scroll extent happens.
See also:
- RetainableScrollPosition, which would correct existing items' scroll offsets and not scroll them up/down,
when the new item is inserting at the first index of
ListView.children
- Inheritance
-
- Object
- ChangeNotifier
- ScrollController
- RetainableScrollController
- Annotations
-
- @Deprecated("Using [PositionRetainedScrollPhysics], instead of using the extended [ScrollController] and [ScrollPositioned]," "to avoid breaking your existing code implementations.")
Constructors
- RetainableScrollController({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
- 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.
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
- position → RetainableScrollPosition
-
Returns the attached ScrollPosition, from which the actual scroll offset
of the ScrollView can be obtained.
no setteroverride
-
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, {required Duration duration, required Curve curve}) → Future< void> -
Animates the position from its current value to the given value.
inherited
-
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 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.
inherited
-
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
-
retainOffset(
) → void -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited