【发布时间】:2021-06-18 22:20:55
【问题描述】:
我想创建一个助手来处理我的对话框。为此,我创建了一个静态方法来调用: 我有一个类 DialogInstance 来提供我的值,它应该包含样式和其他对话框信息。
class DialogInstance {
final BuildContext context;
final String title;
final String message;
final void Function() onCancel;
final void Function() onConfirm;
final String confirmText;
final String cancelText;
final Color confirmColor;
final Color cancelColor;
DialogInstance.confirm(
{@required this.context,
@required this.title,
@required this.message,
@required this.onConfirm,
Function() onCancel, // should be default set
String confirmText,
String cancelText,
Color confirmColor,
this.cancelColor})
: this.onCancel = onCancel ?? _popContext(context), // setting default (doesn't work)
this.confirmText = confirmText ?? 'Ok',
this.cancelText = cancelText ?? 'Abbruch',
this.confirmColor = confirmColor ?? Colors.red;
static _popContext(BuildContext context) {
Navigator.pop(context);
}
}
我通过以下方式调用它:
DialogHelper.showDialog(dialogInstance: myDialog)
如果我这样做,方法 _popContext 会在初始化时调用,而不是在对话框中调用 onPressed。 如何将此功能设置为默认值,并且对话框在初始化时不会关闭?
【问题讨论】:
标签: android ios flutter mobile