Flutter onPressed 函数

标签 flutter function button

onPressed 错误 尝试传递 onPressed 函数但出现错误。

错误 - 无法将参数类型“Function”分配给参数类型“void Function()?”。 enter image description here

class CircleButton extends StatelessWidget {
  CircleButton({required this.icon, required this.onPressed});
  final IconData icon;
  final Function onPressed;                 [![Error][1]][1]//Here
  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      child: Icon(icon),
      onPressed: onPressed,
      style: ElevatedButton.styleFrom(
        elevation: 6.0,
        primary: Color(0xFF4C4F5E),
        shape: CircleBorder(),
        padding: EdgeInsets.all(15),
      ),);
  }}

最佳答案

Function 类型实际上是一个dynamic Function 类型。

ElevatedButton 需要一个 void Function 到它的 onPressed 方法,实际上有一个类型是 typedef 为:VoidCallback

因此,将您的 Function onPressed 替换为 VoidCallback onPressed

关于Flutter onPressed 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71208496/

相关文章:

android - 带有预定义按钮的消息发送应用程序

json - 如何使用另一个类和JsonKey排除DART Model中的字段?

flutter - Flutter 中 colorScheme 和 ThemeData 声明的原色

flutter - 如何跨 Flutter 移动、网络和窗口添加条件导入?

android - 如何在 Flutter 的 ListView 项目中使用 Showcase View?

带有 ping 和 mysql 查询结果的 php 主机状态

sql-server-2008 - 使用纬度和经度返回SQL Server 2008中两个位置之间的距离

javascript - 这个函数不可调用,是吗?

javascript - 我怎样才能改变我的按钮而不是将div从可见更改为不可见,而是做相反的事情?

java - 第二个按钮上的 OnClickListener 既没有正确初始化也没有按预期工作