Flutter 关闭弹框并finish掉当前页面

场景描述:

在一个用户登录退出的场景模式下,并关闭掉当前页面,场景可能类似如下:

Flutter 关闭弹框并finish掉当前页面_第1张图片

如图,当我们点击确定退出按钮,去请求接口,请求成功后,关闭当前dialog,然后再退出当前页面。

上部分代码:

setting_page.dart

// 弹框
  void showLoginOutDialog() {
    showDialog(
        context: context,
        barrierDismissible: false,   // 点击外部不消失
        builder: (BuildContext context){
          return CommonDialog(
            title: "确定退出当前账号?",
            onNavClickListener: (){
              print("onNavClickListener  ");
              Navigator.of(context).pop(1);
            },
            onPosClickListener: (){
              print("loginaa  ");
              Navigator.of(context).pop(1);
              _loginOut();
            },
          );
        }
    );
  }

// 退出网络请求,这里的pop("login_out")为标志,进行退出后页面的刷新操作。
  void _loginOut() async{
    DataUtils.loginOut().then((res){
      print("res $res");
      if (res) {
        ToastUtil.showBottomToast("退出成功");
        Navigator.of(context).pop("login_out");
      }else {
        ToastUtil.showBottomToast("退出失败");
      }
    }).catchError((onError){
      print("onError $onError");
    });
  }
总结:

之前同时pop两个的时候出现黑屏的bug,可能是pop的context对象不对,一个是widget的,一个是dialog的,这时候我试了调整下pop的位置,经测试后发现操作正常。


更多资源请访问:

超详细图文搭建个人免费博客

关注「蛇崽网盘教程资源」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。

在微信后台回复「130个小程序」,即可免费领取享有导入就能跑的微信小程序

在微信后台回复「Flutter移动电商」,即可免费领取Flutter移动电商系列全套
在这里插入图片描述

你可能感兴趣的:(Flutter开发,Flutter,Flutter弹框,Flutter移动电脑,技术胖)