MultiStateSheetController<StateType> class
Controller for managing the state and behavior of a MultiStateSheet.
The MultiStateSheetController enables external interaction with the sheet's snapping behavior, scrolling, animations, and component sizes.
Key Features:
- External control of snapping and scrolling.
- Dynamic component size updates.
- Integration with snapping behaviors for smooth transitions between states.
- Inheritance
-
- Object
- ChangeNotifier
- ScrollController
- MultiStateSheetController
Constructors
-
MultiStateSheetController({required SnappingBehavior behavior, required SheetStateMapper<
StateType> stateMapper, StateType? initialState, double durationMultiplier = 1.0, double forceMultiplier = 1.25, Curve mainCurve = Curves.decelerate, Curve initialOpenCurve = Curves.easeOutExpo, bool resetContentScrollOnHiddenState = false}) -
Constructs a
MultiStateSheetControllerwith the specified snapping behavior and state mapper.
Properties
- actualSheetOffset → double
-
Returns the offset from the top of the screen to the top of the sheet.
no setter
- closestState → StateType
-
Gets the closest state based on the current offset.
no setter
- componentSizes → SheetWidgetSizes
-
Returns model that represent a sheet component sizes.
no setter
- debugLabel → String?
-
A label that is used in the toString output. Intended to aid with
identifying scroll controller instances in debug output.
finalinherited
- durationMultiplier → double
-
Multiplier that adjusts the duration of animations.
final
- forceMultiplier → double
-
Adjusts the force applied to velocity in snapping position calculations.
final
- fraction → double
-
Fraction of the height of sheet to the size of the viewport.
no setter
- 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
- initialComponentSizes → SheetWidgetSizes
-
Returns model that represent a sheet component sizes at the initial state.
no setter
- initialOpenCurve → Curve
-
The curve used for the initial opening animation of the sheet.
final
- initialScrollOffset → double
-
The initial value to use for offset.
no setterinherited
- interpolation → double
-
Interpolation value between states.
no setter
- isAnimatingOpen → bool
-
Returns
trueif the sheet is currently animating to the open state.no setter - isDragging → bool
-
Returns
trueif the sheet is currently being dragged.no setter - isEnabled → bool
-
Returns
trueif the sheet is open and enabled.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.
finalinherited
- mainCurve → Curve
-
The animation curve used to animate the sheet.
final
- needsSetupBehavior → bool
-
Returns
trueif the snapping behavior requires reinitialization.no setter - 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
→ _MultiStateSheetScrollPosition<
StateType> -
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
- sheetHeight → double
-
Gets the height of occupied space by the sheet based on its current offset.
no setter
- state → StateType
-
Gets the current state of the sheet on which is interpolation value relied on
and at which it takes the starting point.
no setter
- viewportHeight → double
-
Returns the viewport height available to the sheet.
no setter
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.
override
-
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.
override
-
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.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
open(
) → void - Animates the sheet to its initial state.
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
reset(
) → void - Resets controller for reuse with a new MultiStateSheet
-
setState(
StateType newState, {Duration? duration, Curve? curve}) → void - Animates the sheet to the specified state.
-
setupSnappingOffsets(
) → void - Sets up the snapping offsets based on current state of the controller's extent.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited