import 'package:flutter/material.dart'; class AnimatedScale extends ImplicitlyAnimatedWidget { final Widget child; final double scale; AnimatedScale({this.child, this.scale}) : super( duration: Duration(milliseconds: 300), ); @override ImplicitlyAnimatedWidgetState createState() => _AnimatedScaleState(); } class _AnimatedScaleState extends AnimatedWidgetBaseState { Tween scaleTween; @override Widget build(BuildContext context) { return Transform.scale( scale: scaleTween.evaluate(animation), child: widget.child, ); } @override void forEachTween(visitor) { scaleTween = visitor( scaleTween, widget.scale, (value) => Tween(begin: value), ); } }