为什么在使用Navigator.pop时会忽略WillPopScope中的onWillPop?

时间:2020-05-04 21:27:51

标签: flutter dart

我使用WillPopScope尝试阻止路由弹出:

WillPopScope(
  onWillPop: () async {
    print('This is never called');
    return false;
  }
)

当我使用Navigator.pop时,仅弹出当前路线,而不是调用onWillPop

Navigator.of(context).pop();

1 个答案:

答案 0 :(得分:0)

这是设计

您将必须使用Navigator.maybePop

尝试弹出导航器最紧密围绕给定上下文的当前路线,同时遵守该路线的Route.willPop状态。

这意味着只有 Navigator.maybePop 会授予onWillPopNavigator.pop 不接受

Navigator.of(context).maybePop();