Flutter 颤振对话框
当用户点击对话框外部以关闭它时,问题就出现了。在这种情况下,上述Flutter 颤振对话框,flutter,Flutter,当用户点击对话框外部以关闭它时,问题就出现了。在这种情况下,上述值返回null。如果发生这种情况,我想返回0。我的解决办法是: 设置barrierDismissible:false,我不想这样做 我可以检查value是否为空,并通过单击外部区域推断对话框已被取消 但除此之外,还有没有更好的方法或任何对话框可拒绝侦听器,我可以从中返回Navigator.pop(0),以防通过点击外部区域来取消对话框,类似这样: int value = await _show(); 我不认为你想要的存在。我认
值
返回null
。如果发生这种情况,我想返回0
。我的解决办法是:
- 设置
,我不想这样做barrierDismissible:false
- 我可以检查
是否为空,并通过单击外部区域推断对话框已被取消value
Navigator.pop(0)
,以防通过点击外部区域来取消对话框,类似这样:
int value = await _show();
我不认为你想要的存在。我认为最接近优雅的期望是:
showDialog(
context: context,
onDialogDismissed: () {
Navigator.pop(0);
}
);
Future\u show()异步{
返回等待显示对话框(
上下文:上下文,
建筑商:(){
返回警报对话框(
行动:[
升起的按钮(
onPressed:()=>Navigator.pop(上下文,1),//返回1
子项:文本('1'),
),
升起的按钮(
onPressed:()=>Navigator.pop(上下文,2),//返回2
子项:文本('2'),
),
],
);
},
) ?? 0;
}
showDialog(
context: context,
onDialogDismissed: () {
Navigator.pop(0);
}
);
Future<int> _show() async {
return await showDialog<int>(
context: context,
builder: (_) {
return AlertDialog(
actions: [
RaisedButton(
onPressed: () => Navigator.pop(context, 1), // returning 1
child: Text('1'),
),
RaisedButton(
onPressed: () => Navigator.pop(context, 2), // returning 2
child: Text('2'),
),
],
);
},
) ?? 0;
}