diff --git a/lib/circular_countdown_timer.dart b/lib/circular_countdown_timer.dart index cbdb5c0..6b19d65 100644 --- a/lib/circular_countdown_timer.dart +++ b/lib/circular_countdown_timer.dart @@ -77,6 +77,10 @@ class CircularCountDownTimer extends StatefulWidget { /// Handles the timer start. final bool autoStart; + /// Center Widget + final Widget? center; + + /* * Function to format the text. * Allows you to format the current duration to any String. @@ -113,6 +117,7 @@ class CircularCountDownTimer extends StatefulWidget { this.autoStart = true, this.textFormat, this.controller, + this.center, }) : assert(initialDuration <= duration); @override @@ -131,7 +136,7 @@ class CircularCountDownTimerState extends State !widget.autoStart && !countDownController!.isStarted) { if (widget.timeFormatterFunction != null) { - return Function.apply(widget.timeFormatterFunction!, + timeStamp = Function.apply(widget.timeFormatterFunction!, [_getTime, Duration(seconds: widget.duration)]).toString(); } else { timeStamp = _getTime(Duration(seconds: widget.duration)); @@ -139,8 +144,9 @@ class CircularCountDownTimerState extends State } else { Duration? duration = _controller!.duration! * _controller!.value; if (widget.timeFormatterFunction != null) { - return Function.apply( - widget.timeFormatterFunction!, [_getTime, duration]).toString(); + timeStamp = + Function.apply(widget.timeFormatterFunction!, [_getTime, duration]) + .toString(); } else { timeStamp = _getTime(duration); } @@ -301,20 +307,7 @@ class CircularCountDownTimerState extends State backgroundGradient: widget.backgroundGradient), ), ), - widget.isTimerTextShown - ? Align( - alignment: FractionalOffset.center, - child: Text( - time, - style: widget.textStyle ?? - const TextStyle( - fontSize: 16.0, - color: Colors.black, - ), - textAlign: widget.textAlign, - ), - ) - : Container(), + _buildCenter(), ], ), ), @@ -323,6 +316,30 @@ class CircularCountDownTimerState extends State ); } + Widget _buildCenter(){ + if(widget.center != null){ + return Align( + child:widget.center!, + alignment: FractionalOffset.center, + ); + } + return widget.isTimerTextShown + ? Align( + alignment: FractionalOffset.center, + child: Text( + time, + style: widget.textStyle ?? + const TextStyle( + fontSize: 16.0, + color: Colors.black, + ), + textAlign: widget.textAlign, + ), + ) + : Container(); + + } + @override void dispose() { _controller!.stop();