如何覆盖Flutter中的“返回”按钮?

在我的主页小部件上,当用户点击系统后退按钮时,我想显示一个确认对话框,询问“您要退出该应用程序吗?”

我不明白如何覆盖或处理系统后退按钮。

回答:

您可以使用它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。

希望能有所帮助!

以上是 如何覆盖Flutter中的“返回”按钮? 的全部内容, 来源链接: utcz.com/qa/426361.html

回到顶部