【问题标题】:How to finish current view / activity in flutter?如何在颤动中完成当前视图/活动?
【发布时间】:2018-05-24 15:11:55
【问题描述】:

android中有没有类似于this.finish()的方法来完成当前的flutter活动。

【问题讨论】:

  • 看看我的回答,是不是你要找的? :)

标签: flutter


【解决方案1】:

您的意思是关闭当前屏幕并返回上一屏幕吗? 如果是这样,Navigator.pop(context) 应该可以完成这项工作。但是,如果您在入口屏幕(应用程序的第一个屏幕并且此屏幕没有父屏幕/上一个屏幕),则 Navigator.pop(context) 将使您返回黑屏。在这种情况下,我们必须使用 SystemNavigator.pop()

但不要在 iOS 上使用 SystemNavigator.pop(),Apple 表示应用程序不应自行退出 :)

以下代码在两种情况下都适用于 Android

if (Navigator.canPop(context)) {
  Navigator.pop(context);
} else {
  SystemNavigator.pop();
}

【讨论】:

  • @Jayesh 你能告诉我更多细节吗?
  • 我得到了解决方案查看这个帖子,stackoverflow.com/questions/50929083/…
  • 这对我有用,谢谢。但是你能不能为 iOS 提供一个解决方案,而不是仅仅说不要退出?
  • 您好,Apple 不会批准我们退出该应用程序。与您可能使用的所有 iOS 应用一样,您无法将其从应用中退出。
【解决方案2】:

使用Navigator.pushReplacement(BuildContext context, Route<T> newRoute)打开一个新的路由,替换当前导航器的路由

【讨论】:

  • 这在颤振 2.2 中不起作用...至少在我的代码中?活动关闭,但在活动上完成的数据保持不变
【解决方案3】:

使用密码

 Navigator.pushReplacement(context,
                              MaterialPageRoute(builder: (context) {
                                return AddDemoUnitActivity();
                              }));

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多