diff --git a/packages/flutter/lib/src/widgets/tween_animation_builder.dart b/packages/flutter/lib/src/widgets/tween_animation_builder.dart index 7f6712834c..66eb55a8be 100644 --- a/packages/flutter/lib/src/widgets/tween_animation_builder.dart +++ b/packages/flutter/lib/src/widgets/tween_animation_builder.dart @@ -113,7 +113,7 @@ import 'value_listenable_builder.dart'; /// [AnimatedBuilder], which can be used similarly to this /// [TweenAnimationBuilder], but unlike the latter it is powered by a /// developer-managed [AnimationController]. -class TweenAnimationBuilder extends ImplicitlyAnimatedWidget { +class TweenAnimationBuilder extends ImplicitlyAnimatedWidget { /// Creates a [TweenAnimationBuilder]. /// /// The properties [tween], [duration], and [builder] are required. The values @@ -194,7 +194,7 @@ class TweenAnimationBuilder extends ImplicitlyAnimatedWidget { } } -class _TweenAnimationBuilderState extends AnimatedWidgetBaseState> { +class _TweenAnimationBuilderState extends AnimatedWidgetBaseState> { Tween? _currentTween; @override diff --git a/packages/flutter/test/widgets/tween_animation_builder_test.dart b/packages/flutter/test/widgets/tween_animation_builder_test.dart index 830ba44882..9b760aeab1 100644 --- a/packages/flutter/test/widgets/tween_animation_builder_test.dart +++ b/packages/flutter/test/widgets/tween_animation_builder_test.dart @@ -387,4 +387,21 @@ void main() { await tester.pump(const Duration(seconds: 2)); expect(values, everyElement(300)); }); + + testWidgets('Works with nullable tweens', (WidgetTester tester) async { + final List values = []; + await tester.pumpWidget( + TweenAnimationBuilder( + duration: const Duration(seconds: 1), + tween: SizeTween(end: const Size(10,10)), + builder: (BuildContext context, Size? s, Widget? child) { + values.add(s); + return const Placeholder(); + }, + ), + ); + expect(values, [const Size(10,10)]); + await tester.pump(const Duration(seconds: 2)); + expect(values, [const Size(10,10)]); + }); }