我发现解决方案是使用
WillPopScope小部件。这是下面的最终代码:
import 'dart:async';import 'package:flutter/material.dart';class NewEntry extends StatefulWidget { NewEntry({Key key, this.title}) :super(key: key); final String title; @override State<StatefulWidget> createState() => new _NewEntryState();}class _NewEntryState extends State<NewEntry> { Future<bool> _onWillPop() { return showDialog( context: context, child: new alertDialog( title: new Text('Are you sure?'), content: new Text('Unsaved data will be lost.'), actions: <Widget>[ new FlatButton( onPressed: () => Navigator.of(context).pop(false), child: new Text('No'), ), new FlatButton( onPressed: () => Navigator.of(context).pop(true), child: new Text('Yes'), ), ], ), ) ?? false; } @override Widget build(BuildContext context) { return new WillPopScope( onWillPop: _onWillPop, child: new Scaffold( appBar: new AppBar( title: new Text(widget.title), ), floatingActionButton: new FloatingActionButton( child: new Icon(Icons.edit), onPressed: () {}, ), ), ); }}


