You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中Navigator.pop()执行后黑屏,如何实现点击按钮退出应用?

Flutter单页面点击按钮退出应用的解决方案

当你的应用只有一个页面时,调用Navigator.of(context).pop()会因为导航栈中没有可返回的页面,导致出现黑屏。要实现点击按钮直接退出应用,可以采用以下几种方法:

方法1:跨平台通用方案——SystemNavigator.pop()

这个方法是Flutter提供的跨平台退出方式,需要先导入services包:

import 'package:flutter/services.dart';

// 按钮点击回调
onPressed: () {
  SystemNavigator.pop();
}

它会按照各平台的标准行为退出应用,Android会回到桌面,iOS会返回主屏幕。

方法2:Android平台专用——exit(0)

如果只针对Android平台,可以导入dart:io包后调用exit(0)直接终止进程:

import 'dart:io';

// 按钮点击回调
onPressed: () {
  exit(0);
}

注意:iOS平台不推荐使用此方法,不符合Apple的应用规范。

方法3:兼容多页面场景的判断逻辑

如果你的应用可能后续扩展多页面,可以先判断导航栈是否还有可返回的页面,再决定是pop还是退出:

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

这样既保留了多页面时的返回功能,也能在单页面时正确退出应用。

内容的提问来源于stack exchange,提问作者user20778124

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:50:25