颤振:如何将值传递给对话框?

时间:2021-07-21 04:29:30

标签: flutter dart

假设我有一个显示对话框的功能,如下所示,如何让它接受一个值并将其显示在对话框上?代码示例后出现如下错误消息,我不明白这是什么意思。谢谢你

  Future _showMyDialog(String message) async {
    return showDialog(
      context: context,
      barrierDismissible: true, // user must tap button!
      builder: (BuildContext context) {
        return AlertDialog(
          title: const Text('Warning'),
          content: SingleChildScrollView(
            child: ListBody(
              children: const <Widget>[
                Text(message),
              ],
            ),
          ),
          actions: <Widget>[
            TextButton(
              child: const Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

错误信息: 如果 [style] 参数为 null,则文本将使用最近的封闭 [DefaultTextStyle] 中的样式。

[data] 参数不能为空。

[overflow] 属性的行为受 [softWrap] 参数的影响。如果 [softWrap] 为 true 或 null,则不会呈现导致溢出的字形以及其后的字形。否则,它将与给定的溢出选项一起显示。

1 个答案:

答案 0 :(得分:1)

@SteveT 如果您从 Listbody 的子项中删除了 const,那么您的问题将被删除。

 Future _showMyDialog(String message) async {
    return showDialog(
      context: context,
      barrierDismissible: true, // user must tap button!
      builder: (BuildContext context) {
        return AlertDialog(
          title: const Text('Warning'),
          content: SingleChildScrollView(
            child: ListBody(
              children: <Widget>[
                Text(message),
              ],
            ),
          ),
          actions: <Widget>[
            TextButton(
              child: const Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }