您可以使用它
WillPopScope来实现。
例:
import 'dart:async';import 'package:flutter/material.dart';class HomePage extends StatefulWidget { HomePage({Key key, this.title}) :super(key: key); final String title; @override State<StatefulWidget> createState() => new _HomePageState();}class _HomePageState extends State<HomePage> { Future<bool> _onWillPop() async { return (await showDialog( context: context, builder: (context) => new alertDialog( title: new Text('Are you sure?'), content: new Text('Do you want to exit an App'), 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("Home Page"), ), body: new Center( child: new Text("Home Page"), ), ), ); }}有关
??-operator支票的信息
null,请参见此处。这很重要,因为如果您在对话框外单击,showDialog将返回
null,在这种情况下将返回false。
希望能有所帮助!



