diff --git a/lib/src/widgets/loaders/loader2.dart b/lib/src/widgets/loaders/loader2.dart index 43c58d9e..21698f77 100644 --- a/lib/src/widgets/loaders/loader2.dart +++ b/lib/src/widgets/loaders/loader2.dart @@ -3,10 +3,23 @@ import 'dart:math'; import 'package:flutter/material.dart'; class LoaderTwo extends StatefulWidget { - final Color color; + final Color centralDotColor; + final Color dotOneColor; + final Color dotTwoColor; + final Color dotThreeColor; + final Color dotFourColor; + final Color dotFiveColor; + final Color dotSixColor; + final Color dotSevenColor; + final Color dotEightColor; + final double centralDotRadius; + final double outerDotRadius; + final double spanRadius; + final Duration duration; + + LoaderTwo({Key key, this.centralDotColor = Colors.black26, this.dotOneColor=Colors.red, this.dotTwoColor=Colors.lightBlue, this.dotThreeColor=Colors.orange, this.dotFourColor=Colors.green, this.dotFiveColor=Colors.yellow, this.dotSixColor=Colors.blue, this.dotSevenColor=Colors.pink, this.dotEightColor=Colors.lightGreen, this.centralDotRadius=15.0, this.spanRadius=15.0, this.duration = const Duration(seconds: 2), this.outerDotRadius = 5.0 }) : super(key: key); - LoaderTwo({Key key, this.color}) : super(key: key); - _LoaderTwoState createState() => _LoaderTwoState(); + _LoaderTwoState createState() => _LoaderTwoState(centralDotRadius); } class _LoaderTwoState extends State with SingleTickerProviderStateMixin { @@ -15,15 +28,17 @@ class _LoaderTwoState extends State with SingleTickerProviderStateMix Animation animationRadiusIn; Animation animationRadiusOut; - final double initialRadius = 25.0; + final double initialRadius; double radius = 0.0; + _LoaderTwoState(this.initialRadius); + @override void initState() { super.initState(); controller = AnimationController( vsync: this, - duration: Duration(seconds: 2)); + duration: widget.duration); animationRadiusIn = Tween(begin: 1.0, end: 0.0).animate( CurvedAnimation(parent: controller, curve: Interval(0.75, 1.0, curve: Curves.elasticIn),) @@ -66,31 +81,31 @@ class _LoaderTwoState extends State with SingleTickerProviderStateMix turns: animationRotation, child: Stack( children: [ - Dot(radius: 30,color: Colors.black26,), + Dot(radius: widget.centralDotRadius,color: widget.centralDotColor,), Transform.translate( offset: Offset(cos(pi/4)*radius, sin(pi/4)*radius), - child: Dot(radius: 5,color: Colors.red,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotOneColor,)), Transform.translate( offset: Offset(cos(2*pi/4)*radius, sin(2*pi/4)*radius), - child: Dot(radius: 5,color: Colors.blue,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotTwoColor,)), Transform.translate( offset: Offset(cos(3*pi/4)*radius, sin(3*pi/4)*radius), - child: Dot(radius: 5,color: Colors.orange,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotThreeColor,)), Transform.translate( offset: Offset(cos(pi)*radius, sin(pi)*radius), - child: Dot(radius: 5,color: Colors.green,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotFourColor,)), Transform.translate( offset: Offset(cos(5*pi/4)*radius, sin(5*pi/4)*radius), - child: Dot(radius: 5,color: Colors.yellow,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotFiveColor,)), Transform.translate( offset: Offset(cos(6*pi/4)*radius, sin(6*pi/4)*radius), - child: Dot(radius: 5,color: Colors.teal,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotSixColor,)), Transform.translate( offset: Offset(cos(7*pi/4)*radius, sin(7*pi/4)*radius), - child: Dot(radius: 5,color: Colors.pink,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotSevenColor,)), Transform.translate( offset: Offset(cos(8*pi/4)*radius, sin(8*pi/4)*radius), - child: Dot(radius: 5,color: Colors.lightBlue,)), + child: Dot(radius: widget.outerDotRadius,color: widget.dotEightColor,)), ], ), ),