首页 > 解决方案 > 如果最终有,颤动会忽略捕获中的警报对话框

问题描述

在 catch 中编写一个 alertdialog 但如果有 finally 它只是忽略警报对话框。打印只是显示并转义对话框?如果我删除了 finally 它就可以正常工作。帮助为什么会发生这种情况。

catch(error){
    showDialog(context: context, builder: (ctx)=> AlertDialog(
      title: Text("An ERROR accurred!"),
      content: Text(error.toString()),
      actions: [
        FlatButton(onPressed: (){Navigator.of(ctx).pop();}, child: Text("OK"))
      ],
    ),
    );
    print(error.toString()+"from alert");
  }
  finally{
    setState(() {
  _isLoading = false;
      });
    Navigator.of(context).pop();
  }
} 

标签: flutterdart

解决方案


finally将根据任何结果被解雇。
您的代码实际上是如何工作的:首先,catch被触发,showDialog被执行并显示对话框,然后print被执行。在这些操作之后,执行finally部分并Navigator.of(context).pop()弹出(隐藏)您的对话框。而且由于它很快,您认为您的对话框没有显示。


推荐阅读