gpt4 book ai didi

flutter :IconButton onPressed 不适用于 SimpleDialog

转载 作者:行者123 更新时间:2023-12-04 16:23:12 25 4
gpt4 key购买 nike

我有这段代码:

child: CircleAvatar(
radius: 18,
backgroundColor: Colors.white70,
child: IconButton(
icon: Icon(Icons.camera_alt_outlined),
onPressed: () => selectPhoto(),
),
)

当按下图标时,我想要一个带有几个选项的简单对话框,所以我写了这个:

selectPhoto() {
return SimpleDialog(
title: const Text('Create Post'),
children: <Widget>[
SimpleDialogOption(...),
SimpleDialogOption(...),
SimpleDialogOption(...)
],
);
}

但是当我尝试运行应用程序时,什么也没有发生。我做错了什么?怎么解决?类型

最佳答案

你的函数的返回值没有被任何东西使用。在 onPressed 中返回 SimpleDialog 是没有用的。 onPressed 函数会被 Widget 调用,所以给它一个返回值是没有用的。

按照 documentation ,你的函数需要调用showDialog方法:

  • 更改您的 selectPhoto 功能:
await showDialog(
context: context,
builder: (BuildContext context) {
return SimpleDialog(
title: const Text('Create Post'),
children: <Widget>[
SimpleDialogOption(...),
SimpleDialogOption(...),
SimpleDialogOption(...)
],
);
})

showDialog方法显示您创建的对话框。如果需要,可以将结果存储在其返回值中:

var result = await showDialog(
[...]

这样您可以检查按下了哪个选项。如果用户取消对话框(例如,通过点击 Android 上的后退按钮,或点击对话框后面的掩码),则 future 将以 null 值结束。

您可以在此答案中链接的 Flutter 文档中阅读更多示例。

关于 flutter :IconButton onPressed 不适用于 SimpleDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69452569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com