ToggleSheetController class

A controller for managing the state of a toggle sheet.

This controller provides functionality for:

  • Opening, closing, and snapping the sheet.
  • Animating transitions between open and closed states.
  • Adjusting for user interactions and gestures.
  • Supporting the ToggleSheetHeightModel.

Key Features:

  • Interactive Control: Allows gestures to modify the sheet's height and state.
  • Snapping and Animation: Smooth animations for transitioning between states.
  • Customization: Supports duration multipliers, ToggleSheetHeightModel, and external callbacks.
Inheritance

Constructors

ToggleSheetController({double durationMultiplier = 1.0, double forceMultiplier = 1.25, ToggleSheetOnCloseCallback? onClose, bool resetContentScrollOnClosed = false, bool clipByHeader = false, ToggleSheetHeightModel? heightModel, bool isInteractive = true})
Constructs a ToggleSheetController.

Properties

clipByHeader bool
Defines if the sheet should be clipped by the header in the closed state.
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
Adjusts the speed of snapping animations.
final
forceMultiplier double
Adjusts the force applied to velocity in snapping position calculations.
final
fraction double
Aspect ratio of the sheet's visible height to its posible maximum height.
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
initialScrollOffset double
The initial value to use for offset.
no setterinherited
interpolation double
Returns the current interpolation value, typically representing the progress between two states (e.g., expanded and collapsed) as a double between 0.0 and 1.0.
no setter
isClosed bool
Indicates whether the sheet is closed and fully hidden.
no setter
isEnabled bool
Indicates whether the sheet is currently open and visible.
no setter
isInteractive bool
Indicates whether the sheet can be closed interactively by dragging.
getter/setter pair
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
onClose ToggleSheetOnCloseCallback?
Callback invoked when the sheet is fully closed.
final
onDetach ScrollControllerCallback?
Called when a ScrollPosition is detached from the scroll controller.
finalinherited
position → _ToggleSheetScrollPosition
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
resetContentScrollOnClosed bool
Defines if the content scroll should reset then sheet state is hidden.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
sheetHeight double
The height of the sheet's visible area.
no setter
viewportHeight double
The total 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
close({Duration? duration}) → void
Animates the sheet to a fully closed state.
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({Duration? duration}) → void
Animates the sheet to a fully open 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 the controller to its initial state, preparing it for reuse.
toString() String
A string representation of this object.
inherited
updateHeightModel(ToggleSheetHeightModel? model) → void
Updates the current height model of the toggle sheet.

Operators

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