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
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- Marquee
- 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 limitfinal - 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, 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