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
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- DefaultScrollbar
- 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. -
right(
PositionUnit right, [Key? key]) → Widget -
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