【发布时间】:2020-12-15 22:37:18
【问题描述】:
我想使用Navigator.pop 更新返回到该屏幕的屏幕。
例如。我有Home 屏幕和一些步骤屏幕(Step1、Step2、Step3、Step4)
主屏幕是一个有状态的小部件,显示已完成的步骤数。
流程是这样的
首页 => Step1 => Step2 => Step3 => Step4
在任何步骤上,按返回或按关闭按钮,它应该返回到Home 屏幕并且主屏幕应该显示已完成步骤的更新状态。所以我正在使用Navigator.popAndPushNamed 导航到步骤屏幕中的下一步,以便Navigator.pop 将转到Home 屏幕。
并在Home 屏幕中使用Navigator.pushNamed(context, 'Step1').then 来更新它。
但问题是 .then 仅在 Step1 本身上被调用,因为它被弹出并且如果用户喜欢
Home => Step1 => Step2 => Step3 => Home(使用pop)
主屏幕只会显示 Step1 已完成,因为当从 Step1 to Step2 转到时,它的 .then 回调被调用,当从 Step3 使用 Navigator.pop 转到 Home 时,没有代码正在执行,我正在无法更新主屏幕。
我知道我可以使用步骤中的Navigator.pushNamed(context, 'Home') 转到主屏幕,但它看起来不正常(看起来主屏幕被推到它上面,而不是动画应该像它返回一样)。
【问题讨论】:
标签: flutter