解决方案:将AnimatedBuilder包裹在如Center的布局约束中
关键代码:
class GrowTransition extends StatelessWidget {
GrowTransition({required this.child, required this.animation});
late final Widget child;
late final Animation<double> animation;
@override
Widget build(BuildContext context) => Center(
child: AnimatedBuilder(
animation: animation,
builder: (context, child) => Container(
child: child,
height: animation.value,
width: (animation).value,
),
child: child,
),
);
}
完整代码:
import 'package:flutter/material.dart';
///这是一个使用AnimatedBuilder拆分动画的,实现动画和widget进行分离的实例
class AniBuilder extends StatefulWidget {
@override
_AniBuilder createState() => _AniBuilder();
}
class _AniBuilder extends State<AniBuilder>
with SingleTickerProviderStateMixin {
Animation<double>? animatio