CircularProgressIndicator class

A Material Design circular progress indicator, which spins to indicate that the application is busy.

A widget that shows progress along a circle. There are two kinds of circular progress indicators:

  • Determinate. Determinate progress indicators have a specific value at each point in time, and the value should increase monotonically from 0.0 to 1.0, at which time the indicator is complete. To create a determinate progress indicator, use a non-null value between 0.0 and 1.0.
  • Indeterminate. Indeterminate progress indicators do not have a specific value at each point in time and instead indicate that progress is being made without indicating how much progress remains. To create an indeterminate progress indicator, use a null value.

The indicator arc is displayed with valueColor, an animated value. To specify a constant color use: AlwaysStoppedAnimation<Color>(color).

This example shows a CircularProgressIndicator with a changing value.
link

To create a local project with this code sample, run:
flutter create --sample=material.CircularProgressIndicator.1 mysample

This sample shows the creation of a CircularProgressIndicator with a changing value. When toggling the switch, CircularProgressIndicator uses a determinate value. As described in: https://m3.material.io/components/progress-indicators/overview
link

To create a local project with this code sample, run:
flutter create --sample=material.CircularProgressIndicator.2 mysample

See also:

Inheritance
Implementers

Constructors

CircularProgressIndicator({Key? key, double? value, Color? backgroundColor, Color? color, Animation<Color?>? valueColor, double strokeWidth = 4.0, double strokeAlign = strokeAlignCenter, String? semanticsLabel, String? semanticsValue, StrokeCap? strokeCap})
Creates a circular progress indicator.
const
CircularProgressIndicator.adaptive({Key? key, double? value, Color? backgroundColor, Animation<Color?>? valueColor, double strokeWidth = 4.0, String? semanticsLabel, String? semanticsValue, StrokeCap? strokeCap, double strokeAlign = strokeAlignCenter})
Creates an adaptive progress indicator that is a CupertinoActivityIndicator in TargetPlatform.iOS & TargetPlatform.macOS and CircularProgressIndicator in material theme/non-Apple platforms.
const

Properties

backgroundColor Color?
Color of the circular track being filled by the circular indicator.
no setteroverride
color Color?
The progress indicator's color.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
semanticsLabel String?
The SemanticsProperties.label for this progress indicator.
finalinherited
semanticsValue String?
The SemanticsProperties.value for this progress indicator.
finalinherited
strokeAlign double
The relative position of the stroke on a CircularProgressIndicator.
final
strokeCap StrokeCap?
The progress indicator's line ending.
final
strokeWidth double
The width of the line used to draw the circle.
final
value double?
If non-null, the value of this progress indicator.
finalinherited
valueColor Animation<Color?>?
The progress indicator's color as an animated value.
finalinherited

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<CircularProgressIndicator>
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

Constants

strokeAlignCenter → const double
The indicator stroke is drawn on the center of the indicator path, with half of the strokeWidth on the inside, and the other half on the outside of the path.
strokeAlignInside → const double
The indicator stroke is drawn fully inside of the indicator path.
strokeAlignOutside → const double
The indicator stroke is drawn on the outside of the indicator path.