0 purchases
timer controller
timer_controller #
A timer library that provides controls (play, pause, restart, etc) and widgets to consume the timer value.
Getting Started #
In the pubspec.yaml of your flutter project, add the following dependency:
dependencies:
...
timer_controller: ^0.1.0
copied to clipboard
In your library add the following import:
import 'package:timer_controller/timer_controller.dart';
copied to clipboard
TimerController #
The TimerController extends ValueNotifier, so you can access his value which represents the information of the timer.
Constructors #
You can use different constructors depending on the available units :
final TimerController secondsTimer = TimerController.seconds(15);
final TimerController minutesTimer = TimerController.minutes(3);
final TimerController hoursTimer = TimerController.hours(2);
copied to clipboard
Note : Remember to dispose the TimerController when it is no longer needed.
Controls #
start(): Start the timer.
pause(): Pause the timer.
reset(): Reset the timer to the initial value.
restart(): Reset the timer to the initial value and start it again.
TimerValue #
The TimerValue represents the state of the timer and has some properties that you can use.
TimerValue({
/// The amount of `unit` that remains.
required int remaining,
/// The unit of the timer.
required TimerUnit unit,
/// The status of the timer.
TimerStatus status = TimerStatus.initial,
});
copied to clipboard
Widgets #
The timer_controller comes with built-in widgets to build widgets or to call actions depending on the controller.
TimerControllerBuilder #
To build a widget depending on the value of the TimerController, you can use the TimerControllerBuilder :
TimerControllerBuilder(
controller: myTimerController,
builder: (context, value, child) {
// return widget here based on myTimerController
}
)
copied to clipboard
Note: If you want fine-grained control over when the builder function is called you can provide an optional condition to TimerControllerBuilder. The condition takes the previous timer value and current timer value and returns a boolean. If condition returns true, builder will be called with value and the widget will rebuild. If condition returns false, builder will not be called and no rebuild will occur.
TimerControllerListener #
To run an action depending on the value of the TimerController, you can use the TimerControllerBuilder :
TimerControllerListener(
controller: myTimerController,
listener: (context, value) {
// do stuff here based on myTimerController value
},
child: Container(),
)
copied to clipboard
Note: If you want fine-grained control over when the listener function is called you can provide an optional condition to TimerControllerListener. The condition takes the previous timer value and current timer value and returns a boolean. If condition returns true, listener will be called with value. If condition returns false, listener will not be called.
Examples #
You can find an example of this package here.
Contribution #
If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.