Flutter学习中的问题记录: 如何监听实体返回键和AppBar返回键

4,453 阅读1分钟
原文链接: www.jianshu.com

效果GIF

route.gif

解决

WillPopScope

class RoutePageWithValue extends StatelessWidget {
  final String lastPageName;

  BuildContext context;

  RoutePageWithValue(this.lastPageName);

  _showDialog() {
    showDialog<Null>(
      context: context,
      child: new AlertDialog(content: new Text('退出当前界面'), actions: <Widget>[
        new FlatButton(
            onPressed: () {
              Navigator.pop(context);
              Navigator.of(context).pop();
            },
            child: new Text('确定'))
      ]),
    );
  }

  Future<bool> _requestPop() {
    _showDialog();
    return new Future.value(false);
  }

  @override
  Widget build(BuildContext context) {
    this.context = context;
    //监听左上角返回和实体返回
    return new WillPopScope(
        child: new Scaffold(
            appBar: new AppBar(
              title: new Text('RoutePageWithValue'),
              centerTitle: true,
            ),
            body: new Center(
              child: new Text('$lastPageName'),
            )),
        onWillPop: _requestPop);
  }
}



实战代码已经上传到我的GITHUB ZhihuDailyPurifyByFlutter

基础学习过程中的代码都放在GITHUB Flutter_Study

每天学一点,学到Flutter发布正式版!