Flutter初始化时 弹出弹出框

 

在开发中,有时候会有这样的场景,就是一进来页面 就弹出一个Dialog模态框  进行一个页面的提示 或者 页面指引操作,但由于构建的问题,flutter不能在进入页面初始化的时候 直接弹出一个Dialog ,这样会报异常 因为上下文还没被构建出来,这个时候 可以使用 Future.delayed 去实现  这里不光是Dialog 只要是要先加载完的需求 都能用这个 比如一进来就要获取一个组件的位置 就需要先加载完 否则报错,示例如下:

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    //初始化时 弹出弹出框 必须加上Future.delayed
    Future.delayed(
      Duration.zero,
        (){
          _showCupertinoAlertDialog(
              context: context,
              title: "提示",
              content: "您没有提交的权限,\n当前仅供查阅",
              sureText: "确定"
          );
        }
    );

  }




  ///弹窗
  void _showCupertinoAlertDialog({context, String title, String content, String sureText}){
    showCupertinoDialog(context: context, builder: (cxt){
      return CupertinoAlertDialog(title: Text(title), content: Text(content), actions: [
//        CupertinoDialogAction(child: Text("取消"),onPressed: (){
//          Navigator.pop(cxt,1);
//        },),
        CupertinoDialogAction(child: Text(sureText),onPressed: (){
          Navigator.pop(cxt,2);
//          clockJudge();
        },)
      ],);
    });
  }

 

你可能感兴趣的:(Flutter,Dart)