Marquee class

A widget that repeats text and automatically scrolls it infinitely.

Sample code

This is a minimalistic example:

Marquee(
  text: 'There once was a boy who told this story about a boy: "',
)

And here's a piece of code that makes full use of the marquee's customizability:

Marquee(
  text: 'Some sample text that takes some space.',
  style: TextStyle(fontWeight: FontWeight.bold),
  scrollAxis: Axis.horizontal,
  blankSpace: 20.0,
  velocity: 100.0,
  pauseAfterRound: Duration(seconds: 1),
  startPadding: 10.0,
  accelerationDuration: Duration(seconds: 1),
  accelerationCurve: Curves.linear,
  decelerationDuration: Duration(milliseconds: 500),
  decelerationCurve: Curves.easeOut,
)

See also:

  • ListView.builder, where by returning the same widget to the builder every time, a similar result can be achieved, just without the automatic scrolling and manual scrolling enabled.
Inheritance
Available extensions

Constructors

Marquee.new({Key? key, required String text, TextStyle? style, double? textScaleFactor, TextDirection textDirection = TextDirection.ltr, Axis scrollAxis = Axis.horizontal, CrossAxisAlignment crossAxisAlignment = CrossAxisAlignment.center, double blankSpace = 0.0, double velocity = 50.0, Duration startAfter = Duration.zero, Duration pauseAfterRound = Duration.zero, bool showFadingOnlyWhenScrolling = true, double fadingEdgeStartFraction = 0.0, double fadingEdgeEndFraction = 0.0, int? numberOfRounds, double startPadding = 0.0, Duration accelerationDuration = Duration.zero, Curve accelerationCurve = Curves.decelerate, Duration decelerationDuration = Duration.zero, Curve decelerationCurve = Curves.decelerate, VoidCallback? onDone})

Properties

accelerationCurve → _IntegralCurve
The acceleration at the start of each round.
final
accelerationDuration Duration
How long the acceleration takes.
final
blankSpace double
The extend of blank space to display between instances of the text.
final
crossAxisAlignment CrossAxisAlignment
The alignment along the cross axis.
final
decelerationCurve → _IntegralCurve
The deceleration at the end of each round.
final
decelerationDuration Duration
How long the deceleration takes.
final
fadingEdgeEndFraction double
The fraction of the Marquee that will be faded on the right or down. By default, there won't be any fading.
final
fadingEdgeStartFraction double
The fraction of the Marquee that will be faded on the left or top. By default, there won't be any fading.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
numberOfRounds int?
When the text scrolled around numberOfRounds times, it will stop scrolling null indicates there is no limit
final
onDone VoidCallback?
This function will be called if numberOfRounds is set and the Marquee finished scrolled the specified number of rounds.
final
pauseAfterRound Duration
After each round, a pause of this duration occurs.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scrollAxis Axis
The scroll axis.
final
showFadingOnlyWhenScrolling bool
Whether the fading edge should only appear while the text is scrolling.
final
startAfter Duration
Start scrolling after this duration after the widget is first displayed.
final
startPadding double
A padding for the resting position.
final
style TextStyle?
The style of the text to be displayed.
final
text String
The text to be displayed.
final
textDirection TextDirection
The text direction of the text to be displayed.
final
textScaleFactor double?
The font scale of the text to be displayed.
final
velocity double
The scrolling velocity in pixels per second.
final

Methods

addGestureDetector({Key? key, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCallback? onTap, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapCallback? onDoubleTap, GestureLongPressCallback? onLongPress, GestureLongPressStartCallback? onLongPressStart, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressUpCallback? onLongPressUp, GestureLongPressEndCallback? onLongPressEnd, GestureDragDownCallback? onVerticalDragDown, GestureDragStartCallback? onVerticalDragStart, GestureDragUpdateCallback? onVerticalDragUpdate, GestureDragEndCallback? onVerticalDragEnd, GestureDragCancelCallback? onVerticalDragCancel, GestureDragDownCallback? onHorizontalDragDown, GestureDragStartCallback? onHorizontalDragStart, GestureDragUpdateCallback? onHorizontalDragUpdate, GestureDragEndCallback? onHorizontalDragEnd, GestureDragCancelCallback? onHorizontalDragCancel, GestureForcePressStartCallback? onForcePressStart, GestureForcePressPeakCallback? onForcePressPeak, GestureForcePressUpdateCallback? onForcePressUpdate, GestureForcePressEndCallback? onForcePressEnd, GestureDragDownCallback? onPanDown, GestureDragStartCallback? onPanStart, GestureDragUpdateCallback? onPanUpdate, GestureDragEndCallback? onPanEnd, GestureDragCancelCallback? onPanCancel, GestureScaleStartCallback? onScaleStart, GestureScaleUpdateCallback? onScaleUpdate, GestureScaleEndCallback? onScaleEnd, HitTestBehavior? behavior, bool excludeFromSemantics = false, DragStartBehavior dragStartBehavior = DragStartBehavior.start}) GestureDetector

Available on Widget, provided by the BZWidgetLayoutEventPower extension

addNeighbor(Widget widget) List<Widget>

Available on Widget, provided by the BZWidgetLayoutPower extension

align({Key? key, Alignment alignment = Alignment.center, double? widthFactor, double? heightFactor}) Align

Available on Widget, provided by the BZWidgetLayoutPower extension

animatedAlign({Key? key, Alignment alignment = Alignment.center, Curve curve = Curves.linear, required Duration duration, VoidCallback? onEnd}) AnimatedAlign

Available on Widget, provided by the BZWidgetAnimatedLayoutEventPower extension

animatedContainer({Key? key, Alignment? alignment, EdgeInsetsGeometry? padding, Color? color, Decoration? decoration, Decoration? foregroundDecoration, double? width, double? height, BoxConstraints? constraints, EdgeInsetsGeometry? margin, Matrix4? transform, Curve curve = Curves.linear, required Duration duration, VoidCallback? onEnd}) AnimatedContainer

Available on Widget, provided by the BZWidgetAnimatedLayoutEventPower extension

animatedPadding({Key? key, required EdgeInsetsGeometry padding, Curve curve = Curves.linear, required Duration duration, VoidCallback? onEnd}) AnimatedPadding

Available on Widget, provided by the BZWidgetAnimatedLayoutEventPower extension

asList() List<Widget>

Available on Widget, provided by the BZWidgetLayoutPower extension

borderRadius({Key? key, required BorderRadiusGeometry? borderRadius}) DecoratedBox

Available on Widget, provided by the BZWidgetLayoutPower extension

card({Key? key, Color? color, Color? shadowColor, Color? surfaceTintColor, double? elevation, ShapeBorder? shape, bool borderOnForeground = true, EdgeInsetsGeometry? margin, Clip? clipBehavior, bool semanticContainer = true}) Card

Available on Widget, provided by the BZWidgetLayoutPower extension

center({Key? key, double? widthFactor, double? heightFactor}) Center

Available on Widget, provided by the BZWidgetLayoutPower extension

clipOval({Key? key, BorderRadius borderRadius = BorderRadius.zero, CustomClipper<Rect>? clipper, Clip clipBehavior = Clip.antiAlias}) ClipOval

Available on Widget, provided by the BZWidgetLayoutPower extension

clipPath({Key? key, BorderRadius borderRadius = BorderRadius.zero, CustomClipper<Path>? clipper, Clip clipBehavior = Clip.antiAlias}) ClipPath

Available on Widget, provided by the BZWidgetLayoutPower extension

clipRRect({Key? key, BorderRadius borderRadius = BorderRadius.zero, CustomClipper<RRect>? clipper, Clip clipBehavior = Clip.antiAlias}) ClipRRect

Available on Widget, provided by the BZWidgetLayoutPower extension

constrainedBox({Key? key, required BoxConstraints constraints}) ConstrainedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

container({Key? key, AlignmentGeometry? alignment, EdgeInsetsGeometry? padding, Color? color, Decoration? decoration, Decoration? foregroundDecoration, double? width, double? height, BoxConstraints? constraints, EdgeInsetsGeometry? margin, Matrix4? transform, Clip clipBehavior = Clip.none}) Container

Available on Widget, provided by the BZWidgetLayoutPower extension

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<StatefulWidget>
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.
inherited
decoratedBox({Key? key, required Decoration decoration, DecorationPosition position = DecorationPosition.background}) DecoratedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

expanded({Key? key, int flex = 1}) Expanded

Available on Widget, provided by the BZWidgetLayoutPower extension

fittedBox({Key? key, BoxFit fit = BoxFit.contain, AlignmentGeometry alignment = Alignment.center}) FittedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

flatButton({Key? key, required VoidCallback onPressed, VoidCallback? onLongPress, ValueChanged<bool>? onHighlightChanged, ButtonTextTheme? textTheme, Color? textColor, Color? disabledTextColor, Color? color, Color? disabledColor, Color? focusColor, Color? hoverColor, Color? highlightColor, Color? splashColor, Brightness? colorBrightness, EdgeInsetsGeometry? padding = const EdgeInsets.all(0), ShapeBorder? shape, Clip clipBehavior = Clip.none, FocusNode? focusNode, bool autofocus = false, MaterialTapTargetSize? materialTapTargetSize}) FloatingActionButton

Available on Widget, provided by the BZWidgetLayoutPower extension

flexible({Key? key, int flex = 1, FlexFit fit = FlexFit.loose}) Flexible

Available on Widget, provided by the BZWidgetLayoutPower extension

limitedBox({Key? key, double maxWidth = double.infinity, double maxHeight = double.infinity}) LimitedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
offstage({Key? key, bool offstage = true}) Offstage

Available on Widget, provided by the BZWidgetLayoutPower extension

onDoubleTap(GestureTapCallback onDoubleTap, {Key? key}) GestureDetector

Available on Widget, provided by the BZWidgetLayoutEventPower extension

onLongPress(GestureLongPressCallback onLongPress, {Key? key}) GestureDetector

Available on Widget, provided by the BZWidgetLayoutEventPower extension

onTap(GestureTapCallback onTap, {Key? key, HapticFeedbackType feedbackType = HapticFeedbackType.none}) GestureDetector

Available on Widget, provided by the BZWidgetLayoutEventPower extension

opacity({Key? key, required double opacity, dynamic alwaysIncludeSemantics = false}) Opacity

Available on Widget, provided by the BZWidgetLayoutPower extension

overflowBox({Key? key, Alignment alignment = Alignment.center, double? minWidth, double? maxWidth, double? minHeight, double? maxHeight}) OverflowBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

positioned({Key? key, double? left, double? top, double? right, double? bottom, double? width, double? height}) Positioned

Available on Widget, provided by the BZWidgetLayoutPower extension

rotatedBox({Key? key, required int quarterTurns}) RotatedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

safeArea({Key? key, bool left = false, bool top = false, bool right = false, bool bottom = true, EdgeInsets minimum = EdgeInsets.zero, bool maintainBottomViewPadding = false}) SafeArea

Available on Widget, provided by the BZWidgetLayoutPower extension

singleChildScrollView({Key? key, Axis scrollDirection = Axis.vertical, bool reverse = false, EdgeInsetsGeometry? padding, bool? primary, ScrollPhysics? physics, ScrollController? controller, DragStartBehavior dragStartBehavior = DragStartBehavior.start}) SingleChildScrollView

Available on Widget, provided by the BZWidgetLayoutPower extension

sizedBox({Key? key, double? width, double? height}) SizedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

sizedOverflowBox({Key? key, required Size size, Alignment alignment = Alignment.center}) SizedOverflowBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

smartRefresher({Key? key, required RefreshController controller, Widget? header, Widget? footer, bool enablePullDown = true, bool enablePullUp = false, bool enableTwoLevel = false, VoidCallback? onRefresh, VoidCallback? onLoading, OnTwoLevel? onTwoLevel, DragStartBehavior? dragStartBehavior, bool? primary, double? cacheExtent, int? semanticChildCount, bool? reverse, ScrollPhysics? physics, Axis? scrollDirection, ScrollController? scrollController}) SmartRefresher

Available on Widget, provided by the BZWidgetRefreshPower extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
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
unconstrainedBox({Key? key, TextDirection? textDirection, Alignment alignment = Alignment.center, Axis? constrainedAxis}) UnconstrainedBox

Available on Widget, provided by the BZWidgetBoxLayoutEventPower extension

Operators

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