flutter_hooks
flutter_hooks copied to clipboard
Tween hooks
trafficstars
Flutter offer multiple Tween classes.
A common use-case it to use them to tween between a previous and new value through didUpdateWidget.
Through hooks, this can be automated into a useTween:
final counter = useState(0);
final Tween tween = useTween(counter.value);
something like this? :
V useTween<T extends Tween<V>, V extends dynamic>(
V value, {
@required T Function(V begin, V end) builder,
Duration duration,
double progress,
}) {
assert(builder != null);
assert(progress != null && duration != null);
assert(progress == null && duration == null);
assert(progress != null && (progress > 1.0 || progress < 1.0));
}
usage :
final color = useTween(Colors.red.shade400,
builder: (begin, end) => ColorTween(begin: begin, end: end),
progress: 0.5
);
Flutter now has TweenAnimationBuilder so that hook is not very important.
Although if we want to make such hook, it'd be logical to use the same API as TweenAnimationBuilder:
final value = useTween(IntTween(end: 42), duration: const Duration(seconds: 2));