Open rrousselGit opened 5 years ago
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));
We have hooks like this in rivership
. They are insanely practical, and this is our implementation.
It's partly opinionated and wouldn't be feasible to move over here like this, but I could raise a PR with a similar implementation if you think these hooks are a fit?
Sure that'd be valuable!
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
: