flutter-custom-dialog icon indicating copy to clipboard operation
flutter-custom-dialog copied to clipboard

【BUG】关于dismiss的一个比较严重的问题

Open q876625596 opened this issue 5 years ago • 9 comments

try {
      _loadingDialog = YYDialog().build(context)
        ..widget(SpinKitWave(color: Colors.white))
        ..backgroundColor = Colors.transparent
      //..barrierColor = Colors.black.withOpacity(.3)
        ..borderRadius = 4.0
        ..show();
    //逻辑代码...
}catch(e){
     _loadingDialog.dismiss();
}finally{
    _loadingDialog.dismiss();
}

代码如上,当我使用try-catch时,如果此时没有异常,那么逻辑最终进入finally里面,弹框可以正常关闭,但是一旦逻辑抛出异常,此时无论进入catch还是进入finally,dismiss均无法关闭弹窗。

q876625596 avatar Jan 13 '20 06:01 q876625596

能否断点一下 _loadingDialog 看看它的值是不是 = null,实例化没成功?

AndroidHensen avatar Jan 13 '20 07:01 AndroidHensen

能否断点一下 _loadingDialog 看看它的值是不是 = null,实例化没成功?

打印过了,不是null,而且对比了dialog里面的context与我当前的context也是相同的

q876625596 avatar Jan 13 '20 07:01 q876625596

话说为什么你要try 起来

AndroidHensen avatar Jan 31 '20 06:01 AndroidHensen

话说为什么你要try 起来

因为我需要在网络请求的时候显示一个loading,然后当网络请求结束或者失败的时候将他dismiss掉,所以使用了finally来dismiss

q876625596 avatar Feb 01 '20 10:02 q876625596

网络错误不应该是这种写法的操作吧,错误有错误的回调 在错误回调中去执行

AndroidHensen avatar Feb 02 '20 08:02 AndroidHensen

网络错误不应该是这种写法的操作吧,错误有错误的回调 在错误回调中去执行

不只是网络请求,在请求之前就有一些操作,此时需要先显示loading,这些操作里面有可能会出现一些异常,比如图片的处理之类的

q876625596 avatar Feb 09 '20 08:02 q876625596

然后还有一个问题,就是当我gravity设置为bottom的时候,此时我的dialog里面有输入框,键盘弹出会将输入框直接覆盖,而不是将输入框顶上来,请问有没有什么解决方法呢

q876625596 avatar Feb 09 '20 08:02 q876625596

请问你后续有解决吗?

mulieli avatar Mar 22 '20 13:03 mulieli

试试 v1.0.20的 useRootNavigator 属性

AndroidHensen avatar Jun 02 '20 09:06 AndroidHensen