![](/img/trans.png)
[英]How to pass Future<void> _name(String _string) to a widget in Flutter?
[英]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'),
),
],
);
},
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.