配置vsync,需要实现一下with SingleTickerProviderStateMixin
class _MyHomePageState extends State < MyHomePage> with SingleTickerProviderStateMixin{ late AnimationController _controller; @overridevoid initState ( ) { super . initState ( ) ; _controller = AnimationController ( duration: const Duration ( milliseconds: 500 ) , vsync: this , lowerBound: 0 , upperBound: 1 , ) ; } @overrideWidget build ( BuildContext context ) { return Scaffold ( appBar: AppBar ( title: const Text ( '标题' ) , ) , body: Center ( child: Column ( children: [ RotationTransition ( turns: _controller, child: Container ( alignment: Alignment. center, width: 100 , height: 100 , color: Colors. red, ) , ) , ElevatedButton ( onPressed: ( ) { _controller. repeat ( ) ; } , child: const Text ( '旋转重复' ) ) , ElevatedButton ( onPressed: ( ) { _controller. stop ( ) ; } , child: const Text ( '旋转停止' ) ) , ElevatedButton ( onPressed: ( ) { _controller. forward ( ) ; } , child: const Text ( '正转1次' ) ) , ElevatedButton ( onPressed: ( ) { _controller. reverse ( ) ; } , child: const Text ( '倒转一次' ) ) , ElevatedButton ( onPressed: ( ) { _controller. reset ( ) ; } , child: const Text ( '重置' ) ) , ] , ) , ) , ) ; }
}