Pub Version GitHub Stars CountProfile Views Counter


  sdk: ">=2.17.6 <3.0.0"


Pie charts can be animated for 100% or more.

The bar graph is a graph that overlaps at the specified position.


Memory usage

exam ong

Getting started

Set the value in Dataclass.

  circleSetProgress = MultipleCircleSetProgress(circle: c);

  late CircleDataItem c = CircleDataItem(

      /// circleForwardFlg is forward or reverse.
      circleForwardFlg: true,

      /// CircleShader is an end type circle None has no knob.
      circleShader: CircleShader.circleNone,

      /// ComplementCircle is the tuning when the circle is changed to large or small.
      complementCircle: 0.05,

      /// circleSizeValue.
      circleSizeValue: _circleSize,

      /// circleStrokeWidth is the thickness of the circle.
      circleStrokeWidth: 30.0,

      /// circleShadowValue is The shadow range value
      circleShadowValue: 0.01,

      /// circleDuration is circle animation speed
      circleDuration: _speedValue.toInt(),

      /// circleColor is the color of the knob.

      /// circleColor is the shadow color of the knob.

      /// circleRoundColor is The base color of circleRoundColor.
      circleRoundColor: Colors.grey,

      /// circleController is CircleProgressController.
      circleController: controller,

      /// circleColorList is Determines the gradient color.
      circleColorList: setColor);

In the double array, the last element and the next element first have the same color and become a gradation.

  final List<List<Color>> setColor = [
    [, Colors.yellow],
    [Colors.yellow, Colors.purple],
    [Colors.purple, Colors.lime],
    [Colors.lime, Colors.limeAccent],
    [, Colors.brown],
    [Colors.brown, Colors.white],
    [, Colors.deepOrangeAccent],
    [Colors.deepOrangeAccent, Colors.lightBlueAccent],

Think the set value to the controller of CircleProgressControllerClass.

final CircleProgressController controller = CircleProgressController();

  /// Set the animation value, speed, forward direction, and reverse direction in the library.
  OutlinedButton setButton(
      bool forwardFlg, double counterValue, double circleLabelValue) {
    return OutlinedButton(
      onPressed: () {
        c.circleForwardFlg = forwardFlg;
        c.circleCounterValue = counterValue;
        c.circleLabelSpeedValue = circleLabelValue;
        c.circleLabelValue = circleLabelValue;
            .setProgress([c.circleCounterValue ?? 0, c.circleLabelValue ?? 0]);
      child: const Icon(Icons.play_circle),

Additional information