我想传递一个小部件,它也在 Flutter 的 void 方法中传递一个 String 值
I want to pass a widget which also pass a String value in a void method in Flutter
错误:无法将参数类型 'Widget' 分配给参数类型 'Widget Function(String)'。
void _showTicketDetails(Widget
parentTicketDetailsTitle(String parentTicketInfo), Widget parentTicketDetailsContent()) {
//Flutter defined function showDialog();
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
insetPadding: EdgeInsets.all(15),
titlePadding:
EdgeInsets.only(top: 5.0, bottom: 0.0, left: 5.0, right: 5.0),
contentPadding:
EdgeInsets.only(top: 0.0, bottom: 5.0, left: 5.0, right: 5.0),
actionsPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
title: parentTicketDetailsTitle(parentTicketInfo),
content: parentTicketDetailsContent(),
);
},
);
}
Widget _ticketDetails7Title(String ticketInfo) {
return Column(...
);
}
Widget _createTicketDetailsContent() {
return Container(...
);
}
GestureDetector(
onTap: () =>
_showTicketDetails(
_ticketDetails7Title('Create Ticket'),
_createTicketDetailsContent),
),
void _showTicketDetails(Widget
parentTicketDetailsTitle, Widget parentTicketDetailsContent()) {
//Flutter defined function showDialog();
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
insetPadding: EdgeInsets.all(15),
titlePadding:
EdgeInsets.only(top: 5.0, bottom: 0.0, left: 5.0, right: 5.0),
contentPadding:
EdgeInsets.only(top: 0.0, bottom: 5.0, left: 5.0, right: 5.0),
actionsPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
title: parentTicketDetailsTitle,
content: parentTicketDetailsContent(),
);
},
);
}
Widget _ticketDetails7Title(String ticketInfo) {
return Column(
children: [
Text(ticketInfo),
],
);
}
Widget _createTicketDetailsContent() {
return Container(
child: Text('hello'),
);
}
gesture()
{
return GestureDetector(
onTap: () =>
_showTicketDetails(
_ticketDetails7Title('Create Ticket'),
_createTicketDetailsContent),
);
}
Future<Widget> _showTicketDetails(
String parentTicketInfo,
Widget parentTicketDetailsTitle(String parentTicketInfo),
Widget parentTicketDetailsContent()) async {
//Flutter defined function showDialog();
return await showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
insetPadding: EdgeInsets.all(15),
titlePadding:
EdgeInsets.only(top: 5.0, bottom: 0.0, left: 5.0, right: 5.0),
contentPadding:
EdgeInsets.only(top: 0.0, bottom: 5.0, left: 5.0, right: 5.0),
actionsPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
title: parentTicketDetailsTitle(parentTicketInfo),
content: parentTicketDetailsContent(),
actions: [
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('Close'),
),
],
);
},
);
错误:无法将参数类型 'Widget' 分配给参数类型 'Widget Function(String)'。
void _showTicketDetails(Widget
parentTicketDetailsTitle(String parentTicketInfo), Widget parentTicketDetailsContent()) {
//Flutter defined function showDialog();
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
insetPadding: EdgeInsets.all(15),
titlePadding:
EdgeInsets.only(top: 5.0, bottom: 0.0, left: 5.0, right: 5.0),
contentPadding:
EdgeInsets.only(top: 0.0, bottom: 5.0, left: 5.0, right: 5.0),
actionsPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
title: parentTicketDetailsTitle(parentTicketInfo),
content: parentTicketDetailsContent(),
);
},
);
}
Widget _ticketDetails7Title(String ticketInfo) {
return Column(...
);
}
Widget _createTicketDetailsContent() {
return Container(...
);
}
GestureDetector(
onTap: () =>
_showTicketDetails(
_ticketDetails7Title('Create Ticket'),
_createTicketDetailsContent),
),
void _showTicketDetails(Widget
parentTicketDetailsTitle, Widget parentTicketDetailsContent()) {
//Flutter defined function showDialog();
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
insetPadding: EdgeInsets.all(15),
titlePadding:
EdgeInsets.only(top: 5.0, bottom: 0.0, left: 5.0, right: 5.0),
contentPadding:
EdgeInsets.only(top: 0.0, bottom: 5.0, left: 5.0, right: 5.0),
actionsPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
title: parentTicketDetailsTitle,
content: parentTicketDetailsContent(),
);
},
);
}
Widget _ticketDetails7Title(String ticketInfo) {
return Column(
children: [
Text(ticketInfo),
],
);
}
Widget _createTicketDetailsContent() {
return Container(
child: Text('hello'),
);
}
gesture()
{
return GestureDetector(
onTap: () =>
_showTicketDetails(
_ticketDetails7Title('Create Ticket'),
_createTicketDetailsContent),
);
}
Future<Widget> _showTicketDetails(
String parentTicketInfo,
Widget parentTicketDetailsTitle(String parentTicketInfo),
Widget parentTicketDetailsContent()) async {
//Flutter defined function showDialog();
return await showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
insetPadding: EdgeInsets.all(15),
titlePadding:
EdgeInsets.only(top: 5.0, bottom: 0.0, left: 5.0, right: 5.0),
contentPadding:
EdgeInsets.only(top: 0.0, bottom: 5.0, left: 5.0, right: 5.0),
actionsPadding: EdgeInsets.all(0.0),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
title: parentTicketDetailsTitle(parentTicketInfo),
content: parentTicketDetailsContent(),
actions: [
FlatButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text('Close'),
),
],
);
},
);