如何在 Flutter 中弹出没有动画的屏幕
Posted
技术标签:
【中文标题】如何在 Flutter 中弹出没有动画的屏幕【英文标题】:How to pop screen without animation in Flutter 【发布时间】:2019-12-15 21:18:03 【问题描述】:基本上我想Navigator.of(context).pop();
但没有动画。
通过阅读文档,我发现您只能在推送路线时覆盖此动画。就我而言,我事先不知道在删除路线时是否要显示弹出动画,所以我需要一个解决方案,允许我在调用 pop()
时指定是否需要此动画
这可能吗?
【问题讨论】:
***.com/questions/49874272/… @SharadPaghdal 这不起作用,因为根据用户输入,我可能需要显示或不显示弹出动画。覆盖buildTransitions
将在推送路由之前预定义是否播放动画。
【参考方案1】:
要创建/弹出没有动画的页面,您可以像这样创建自定义页面。
class NoAnimationPage extends Page<dynamic>
const NoAnimationPage(
LocalKey? key,
required this.child,
) : super(key: key);
final Widget child;
@override
Route<dynamic> createRoute(BuildContext context) => PageRouteBuilder<dynamic>(
settings: this,
pageBuilder: (_, __, ___) => child,
// don't wrap in an animation to create a page without animation.
);
然后使用NoAnimationPage
代替MaterialPage
或CupertinoPage
。
【讨论】:
以上是关于如何在 Flutter 中弹出没有动画的屏幕的主要内容,如果未能解决你的问题,请参考以下文章