首页 > 解决方案 > 在 Flutter 中以编程方式调用 onBackpress

问题描述

我如何在 Flutter 上以编程方式调用 backpress 函数(onWillPop)。

在 Android Native 中,我需要做的是在需要模拟后按点击时调用它。

this.onBackPressed();

我的 onBackPress 函数,它在 WillPopScope 中设置onWillPop

Future<bool> _onBackPressed() {
    return showDialog(
          context: context,
          builder: (context) => new AlertDialog(
                title: Text("Você tem certeza?"),
                content: Text('Você realmente quer sair do app'),
                actions: <Widget>[
                  new RaisedButton(
                    onPressed: () => Navigator.of(context).pop(false),
                    child: Text("Não")
                  ),
                  new RaisedButton(
                    onPressed: _signOut,
                    child: Text("Sim")
                  ),
                ],
              ),
        ) ??
        false;
  }

它显示一个对话框,如果单击是,则应用程序注销。

我的想法是在 AppBar 上创建一个后退箭头来做同样的事情

标签: androidiosflutterbackonbackpressed

解决方案


如果要调用 onWillPop,只需在 Navigator 上调用以下方法而不是 pop 方法。调用onWillPop会导致flutter。

Navigator.of(context).maybePop();

推荐阅读