Flutter 是否有办法监听当前路线中的路线更改,并在需要时取消

Flutter 是否有办法监听当前路线中的路线更改,并在需要时取消,flutter,dart,Flutter,Dart,我正在尝试实现一个功能,询问用户在更改路线之前是否完成了配置文件 例如: -> User complete his profile -> He press on a button that navigate to other route -> There is a dialog that ask if he wants to continue -> He press "no" -> The navigation is canceled

我正在尝试实现一个功能,询问用户在更改路线之前是否完成了配置文件

例如:

-> User complete his profile 
-> He press on a button that navigate to other route 
-> There is a dialog that ask if he wants to continue 
-> He press "no" 
-> The navigation is canceled
所以我需要实现“导航被取消”部分,但是如何实现呢

我可以通过在每次调用导航器之前显示对话框来实现这一点,但在我的例子中,我使用的导航栏包含更改路线的每个按钮,因此我无法编辑函数

我想要的是一个倾听者:

beforeDispose() {
  bool continue = false;
  if (!continue) {
    cancelDispose() or cancelRouting()
}
}

也许有一种方法可以使用
onDispose()
函数,但我不知道如何将步骤2和步骤3互换,所以看起来是:“有一个对话框询问他是否想继续”,然后是“他按下一个按钮导航到另一条路线”。问题是我正在使用一个按钮(导航栏)我在很多路线上都使用,所以我不能这样做。我想要的是一个倾听者,我编辑了我的主要帖子,向大家展示了一个例子