LinearPercentIndicator class

A powerful and customizable linear percent indicator widget.

This widget displays a linear progress indicator with extensive customization options including multi-segment support, animation controls, child positioning, and gradient support.

Example usage:

LinearPercentIndicator(
  percent: 0.75,
  width: 200,
  lineHeight: 20,
  progressColor: Colors.blue,
  backgroundColor: Colors.grey.shade300,
  animation: true,
  animationDuration: 1000,
  leading: Icon(Icons.download),
  trailing: Text('75%'),
  center: Text('Downloading...'),
)
Inheritance

Constructors

LinearPercentIndicator({Key? key, double percent = 0.0, double? width, double lineHeight = 10.0, Color progressColor = Colors.blue, Color backgroundColor = const Color(0xFFE0E0E0), Gradient? linearGradient, Gradient? backgroundGradient, bool animation = false, int animationDuration = 500, Curve animationCurve = Curves.easeInOut, bool restartAnimation = false, bool animateFromLastPercent = false, Widget? leading, Widget? trailing, Widget? center, LinearChildPosition childPosition = LinearChildPosition.center, BorderRadius? borderRadius, EdgeInsets leadingPadding = const EdgeInsets.only(right: 8), EdgeInsets trailingPadding = const EdgeInsets.only(left: 8), bool fillBackground = false, bool clipLinearGradient = true, VoidCallback? onAnimationEnd, List<LinearSegment>? segments, bool showPercentage = false, TextStyle? percentageTextStyle, int percentageDecimals = 0, bool addPercentSign = true, MainAxisAlignment alignment = MainAxisAlignment.start, EdgeInsets padding = EdgeInsets.zero, MaskFilter? maskFilter, bool isRTL = false, Radius? barRadius})
Creates a linear percent indicator widget.
const

Properties

addPercentSign bool
Whether to add percent symbol.
final
alignment MainAxisAlignment
Alignment of the widget.
final
animateFromLastPercent bool
Whether to animate from last percent or from 0.
final
animation bool
Whether to animate progress changes.
final
animationCurve Curve
The curve for the animation.
final
animationDuration int
The duration of the animation in milliseconds.
final
backgroundColor Color
The background color of the progress bar.
final
backgroundGradient Gradient?
Optional gradient for the background.
final
barRadius Radius?
Bar radius (deprecated, use borderRadius instead).
final
borderRadius BorderRadius?
The border radius of the progress bar.
final
center Widget?
Widget to display in the center (overlay).
final
childPosition LinearChildPosition
Position of the child widget.
final
clipLinearGradient bool
Whether to clip the progress bar.
final
fillBackground bool
Whether to fill the background.
final
hashCode int
The hash code for this object.
no setterinherited
isRTL bool
Whether the progress bar is reversed (right to left).
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
leading Widget?
Widget to display on the left side.
final
leadingPadding EdgeInsets
Padding around the leading widget.
final
linearGradient Gradient?
Optional gradient for the progress bar. If provided, overrides progressColor.
final
lineHeight double
The height of the progress bar line.
final
maskFilter MaskFilter?
Mask filter for the progress bar (for glow effects).
final
onAnimationEnd VoidCallback?
Callback when animation completes.
final
padding EdgeInsets
Padding around the entire widget.
final
percent double
The progress value between 0.0 and 1.0.
final
percentageDecimals int
Number of decimal places for percentage.
final
percentageTextStyle TextStyle?
Text style for percentage text.
final
progressColor Color
The color of the progress indicator.
final
restartAnimation bool
Whether to restart animation from 0 when percent changes.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
segments List<LinearSegment>?
Multi-segment configuration.
final
showPercentage bool
Whether to show percentage text in center.
final
trailing Widget?
Widget to display on the right side.
final
trailingPadding EdgeInsets
Padding around the trailing widget.
final
width double?
The width of the progress bar. If null, uses available space.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<LinearPercentIndicator>
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
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
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

Operators

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