Sur mon widget Accueil, lorsque l'utilisateur appuie sur le bouton Précédent du système, je souhaite afficher une boîte de dialogue de confirmation vous demandant "Voulez-vous quitter l'application?"
Je ne comprends pas comment remplacer ou manipuler le bouton Précédent du système.
Vous pouvez utiliser WillPopScope
pour y parvenir.
Exemple:
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() {
return 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"),
),
),
);
}
}
Le ??-operator
vérifie null
, voir ici . Ceci est important car si vous cliquez en dehors de la boîte de dialogue, showDialog renvoie null
et dans ce cas, false est renvoyé.
J'espère que ça a aidé!