我创建通用警报框并传递参数。但是当尝试 tp pass onPressed 方法时,这个错误就来了。
引发了另一个异常:类型 'bool' 不是类型 '() => void' 的子类型
小部件类
return showDialogPop(
AppTranslations.of(context).text("login_error"),
AppTranslations.of(context).text("enter_password"),
AppTranslations.of(context).text("ok"),
Navigator.of(context).pop());
showDialogPop 方法
showDialogPop(_titleText, _contentText, _childBtnText, VoidCallback _onPressed) {
return showDialog(
context: context,
builder: (BuildContext context) => AppAlertDialog(
titleText: _titleText,
contentText: _contentText,
childBtnText: _childBtnText,
onPressed: _onPressed));
}
常见的 AppBar 类
import 'package:flutter/material.dart';
class AppAlertDialog extends StatelessWidget {
final VoidCallback onPressed;
final String titleText;
final String contentText;
final String childBtnText;
AppAlertDialog({
this.titleText,
this.contentText,
this.childBtnText,
this.onPressed,
});
@override
Widget build(BuildContext context) {
return AlertDialog(
title: Text(titleText),
content: Text(contentText),
actions: <Widget>[
FlatButton(
onPressed: () => onPressed(),
child: Text(
childBtnText,
style: TextStyle(fontWeight: FontWeight.bold),
))],);}}