要为指标创建滑动动画(如果我理解您的要求正确),我只建议使用SlideTransition小部件。将其集成到您的现有代码中不需要太多的工作。
以下代码显示的最小示例
SlideTransition。如果要 在 从一个屏幕导航到另一个屏幕的 过程中 继续显示它 ,
则必须将其绘制在导航器 上方 的一层中。
如果您 不 喜欢使用a
Stack,则可以改用flutter
的Overlay功能,如本答案所述。 在 导航过渡 期间
保持动画显示的同时,这也将解决斗争。
import 'package:flutter/material.dart';void main() { runApp(MyApp());}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Home(), ); }}class Home extends StatefulWidget { @override State<StatefulWidget> createState() => HomeState();}class HomeState extends State<Home> with SingleTickerProviderStateMixin { AnimationController controller; Animation<Offset> offset; @override void initState() { super.initState(); controller = AnimationController(vsync: this, duration: Duration(seconds: 1)); offset = Tween<Offset>(begin: Offset.zero, end: Offset(0.0, 1.0)) .animate(controller); } @override Widget build(BuildContext context) { return Scaffold( body: Stack( children: <Widget>[ Center( child: RaisedButton( child: Text('Show / Hide'), onPressed: () { switch (controller.status) { case AnimationStatus.completed: controller.reverse(); break; case AnimationStatus.dismissed: controller.forward(); break; default: } }, ), ), Align( alignment: Alignment.bottomCenter, child: SlideTransition( position: offset, child: Padding( padding: EdgeInsets.all(50.0), child: CircularProgressIndicator(), ), ), ) ], ), ); }}


