后退按钮无法从主页关闭应用程序

时间:2019-07-15 10:03:12

标签: android flutter

我有一个Flutter应用程序,在其中打开时会打开启动屏幕,然后打开主页。

当我进入主页并单击Android的后退按钮时,因为使用了此代码,所以什么也没发生:

new WillPopScope(
    onWillPop: () async => false,
    child:Directionality(
        textDirection: direction,
        child:...
   )
)

但是如果我从首页单击Android中的“后退”按钮,我希望该应用程序退出。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

这是预期的行为,因为WillPopScope会覆盖导航。

您应该自己实施导航

示例:

Future<bool> _exitApp(BuildContext context) {
  return showDialog(
        context: context,
        child: new AlertDialog(
          title: new Text('Do you want to exit this application?'),
          content: new Text('We hate to see you leave...'),
          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;
}
new WillPopScope(
    onWillPop: () async => _exitApp(context),
    child:Directionality(
        textDirection: direction,
        child:...
   )
)

Reference

编辑以退出应用程序,您可以使用import 'dart:io';功能添加exit(0)