DefaultScrollbar class

A default implementation of a scrollbar with customizable appearance.

DefaultScrollbar provides a pre-configured scrollbar widget with reasonable defaults for thumb and track appearance. It supports hover states, drag interactions, and smooth animations for showing/hiding and jumping to positions.

The scrollbar automatically shows/hides based on content overflow and user interaction. It can be customized via decoration properties to match any design system.

Example:

DefaultScrollbar(
  thumbDecoration: BoxDecoration(
    color: Colors.blue.withOpacity(0.5),
    borderRadius: BorderRadius.circular(8),
  ),
  minThumbLength: 60.0,
)
Inheritance
Available extensions

Constructors

DefaultScrollbar({Key? key, double minThumbLength = 48.0, Decoration thumbDecoration = const BoxDecoration(color: Color.fromARGB(50, 0, 0, 0), borderRadius: BorderRadius.all(Radius.circular(4.0))), Decoration thumbActiveDecoration = const BoxDecoration(color: Color.fromARGB(131, 0, 0, 0), borderRadius: BorderRadius.all(Radius.circular(4.0))), Decoration trackDecoration = const BoxDecoration(color: Color.fromARGB(0, 0, 0, 0), borderRadius: BorderRadius.all(Radius.circular(4.0))), Decoration trackActiveDecoration = const BoxDecoration(color: Color.fromARGB(0, 0, 0, 0), borderRadius: BorderRadius.all(Radius.circular(4.0))), EdgeInsetsGeometry margin = const EdgeInsets.all(2.0), EdgeInsetsGeometry padding = EdgeInsets.zero, Duration fadeDuration = const Duration(milliseconds: 300), Duration jumpDuration = const Duration(milliseconds: 200), Curve jumpCurve = Curves.easeInOut})
Creates a default scrollbar with customizable appearance.
const

Properties

asAbsoluteItem Widget

Available on Widget, provided by the WidgetExtension extension

Explicitly wraps this widget as an AbsoluteItem.
no setter
asFlexItem Widget

Available on Widget, provided by the WidgetExtension extension

Explicitly wraps this widget as a FlexItem.
no setter
fadeDuration Duration
Duration for fade in/out animations when showing/hiding the scrollbar.
final
hashCode int
The hash code for this object.
no setterinherited
jumpCurve Curve
Animation curve for scroll jumps.
final
jumpDuration Duration
Duration for animated scroll jumps when the track is tapped.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
margin EdgeInsetsGeometry
Margin around the entire scrollbar widget.
final
minThumbLength double
Minimum length of the scrollbar thumb in pixels.
final
padding EdgeInsetsGeometry
Padding inside the scrollbar track.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
thumbActiveDecoration Decoration
Decoration for the scrollbar thumb when active (hovered or dragged).
final
thumbDecoration Decoration
Decoration for the scrollbar thumb in its default state.
final
trackActiveDecoration Decoration
Decoration for the scrollbar track when active (hovered).
final
trackDecoration Decoration
Decoration for the scrollbar track in its default state.
final

Methods

aspectRatio(double aspectRatio, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the aspect ratio constraint for this widget.
bottom(PositionUnit bottom, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the distance from the bottom edge of the parent container.
constrained({SizeUnit? minWidth, SizeUnit? maxWidth, SizeUnit? minHeight, SizeUnit? maxHeight, Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

Sets comprehensive size constraints including both minimum and maximum bounds.
createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<DefaultScrollbar>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
override
flexGrow(double flexGrow, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the flex grow factor for this widget within a flex container.
flexShrink(double flexShrink, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the flex shrink factor for this widget within a flex container.
height(SizeUnit height, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the height of this widget using a SizeUnit.
id(Object valueKey) Widget

Available on Widget, provided by the WidgetExtension extension

Assigns a ValueKey to this widget using the provided value.
key(Key key) Widget

Available on Widget, provided by the WidgetExtension extension

Assigns a Key to this widget.
left(PositionUnit left, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the distance from the left edge of the parent container.
maxHeight(SizeUnit maxHeight, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the maximum height constraint for this widget using a SizeUnit.
maxSized({SizeUnit? maxWidth, SizeUnit? maxHeight, Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

Sets maximum width and height constraints simultaneously.
maxWidth(SizeUnit maxWidth, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the maximum width constraint for this widget using a SizeUnit.
minHeight(SizeUnit minHeight, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the minimum height constraint for this widget using a SizeUnit.
minSized({SizeUnit? minWidth, SizeUnit? minHeight, Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

Sets minimum width and height constraints simultaneously.
minWidth(SizeUnit minWidth, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the minimum width constraint for this widget using a SizeUnit.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paintOrder(int paintOrder, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the paint order for this widget within its parent container.
position(PositionType position, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the position type for this widget to control positioning context.
positioned({PositionUnit? top, PositionUnit? left, PositionUnit? bottom, PositionUnit? right, Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

Positions the widget using multiple edge offsets simultaneously.

Available on Widget, provided by the WidgetExtension extension

Sets the distance from the right edge of the parent container.
selfAligned(BoxAlignmentGeometry alignSelf, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the alignment of this widget within its parent flex container.
sized({SizeUnit? width, SizeUnit? height, Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

Sets both width and height dimensions simultaneously.
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
top(PositionUnit top, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the distance from the top edge of the parent container.
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited
width(SizeUnit width, [Key? key]) Widget

Available on Widget, provided by the WidgetExtension extension

Sets the width of this widget using a SizeUnit.

Operators

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