Navigator.push 没有动画 - Flutter
Posted
技术标签:
【中文标题】Navigator.push 没有动画 - Flutter【英文标题】:Navigator.push without animation - Flutter 【发布时间】:2020-11-10 01:31:14 【问题描述】:我有几个带有下一步按钮的注册表单,我想在不同的屏幕之间切换
onTap: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SomeOtherScaffold()))
,
但没有自带的默认动画。
【问题讨论】:
***.com/questions/50196913/… 这个问题的重复 - ***.com/questions/49874272/… 【参考方案1】:如果你想使用其他动画,你可以使用transitionBuilder
,在你的PageRoute
。下面为您介绍如何使用它:
import 'package:flutter/material.dart';
main()
runApp(MaterialApp(
home: Page1(),
));
class Page1 extends StatelessWidget
Widget build(BuildContext context)
return Scaffold(
appBar: AppBar(),
body: Center(
child: RaisedButton(
child: Text('Go!'),
onPressed: ()
Navigator.of(context).push(_createRoute());
,
),
),
);
Route _createRoute()
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => Page2(),
transitionsBuilder: (context, animation, secondaryAnimation, child)
return child;
,
);
如果你想立即过渡,你可以这样做:
transitionDuration: Duration(seconds: 0)
这会将转换时间减少到 0 秒,最终会加快转换速度。
要了解有关Page Animation Transition
的更多信息,请关注以下文章:
-
Page Route Animation
Everything you need for Flutter Page Transition
如果你不想要默认的,你需要为你的过渡定义一些东西,这个答案将帮助你实现这一点。
【讨论】:
以上是关于Navigator.push 没有动画 - Flutter的主要内容,如果未能解决你的问题,请参考以下文章
Dart / Flutter:在没有上下文的页面之间导航(使用 Navigator)(所以没有 Navigator.push?)