簡體   English   中英

我想傳遞一個小部件,它也在 Flutter 的 void 方法中傳遞一個字符串值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM