我正在构建一个具有多个页面的应用程序。问题是,我有很多Hero()
小部件,我想在页面之间设置动画。我尝试使用动画包的PageTransitionSwitcher
,但Hero()
小部件无法使用它进行动画制作。我在MaterialApp()
下面的树的根上有一个包装器,我路由到登录屏幕、验证屏幕和主屏幕。问题是,如果我在主屏幕上路由,它将替换包装器,所以我不得不让主屏幕是一个空容器,在它上面推送一条路由,这就是实际的主屏幕,每个主屏幕都有一个底部NavigationBar((,在Hero()
的动画化时,它推送一个替换以使用渐变动画更改屏幕。
问题是,这种方法非常糟糕,我遇到了很多问题,因为我必须有一个空的小部件,它推送一个路由,然后在用户的身份验证状态更改时在包装器中弹出所有路由。我想知道是否有更好的方法可以做到这一点,或者有一种方法可以在不实际路由用户的情况下获得路由动画。
谢谢你的帮助!
编辑:我目前的方法不起作用,因为当用户更新个人资料时,它会随机弹出页面。我暂时恢复到PageTransitionSwitcher()
,但我想知道如何在当前设置中使用导航器或使用导航器的动画。
这可以通过嵌套导航器来完成。在主页中返回Navigator()
并添加HeroController()
(请参阅此处的更多信息,英雄动画不在嵌套导航器中工作(应该可以实现我想要实现的目标。
您还需要给导航器一个键,并在Material App中指定一个navigatorKey
,例如使用keyName.currentState!.push()
进行路由。