我已经在Flutter中覆盖了PageRoute中的didComplete()。
由于某些原因,控制动画控制器会停止完成路径。动画按预期处理,没有抛出错误,但是模态路由仍然阻挡下面的屏幕,即使它不可见。
@override
void didComplete(T? result) {
super
.controller
?.animateTo(
0,
curve: Curves.easeOut,
duration: reverseTransitionDuration,
)
.then((value) {});
super.didComplete(result);
}
我已经尝试添加各种处置方法,但似乎路线和控制器是正确的处置。
如果我删除控制器的动画,那么didComplete就可以按预期工作。
@override
void didComplete(T? result) {
super.didComplete(result);
}
我错过了什么。
1条答案
按热度按时间fdx2calv1#
任何时候修改滚动控制器都会出现同样的问题。本质上,即使它确实弹出,路线也不会最终确定,因为并非所有的资源都是完整的。在本例中,该资源是AnimationController。
因此,解决方案是一旦对控制器的修改完成,就最终确定路线:
如果在路线内的小部件中执行此操作,则可以通过访问ModalRoute继承的小部件和Navigator来实现: