如何使小部件参数可选?

发布于 2025-01-20 01:59:18 字数 495 浏览 0 评论 0原文

我有一个用于构建图标小部件的函数:

  buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size}) {
    return InkWell(
      onTap: onTap,
      child: Icon(
        // set size only if argument size != null
        icon,
        color: color,
      ),
    );
  }

如您所见,该函数具有可为空的参数size。仅当该参数不等于 null 时,我才需要设置该参数。如果我添加对 null 的检查,那么我将必须为图标小部件的 size 参数添加默认值。

如果函数参数为 null ,是否可以避免设置 Icon 小部件的 size 参数?请帮我。

I have a function that I use to build an icon widget:

  buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size}) {
    return InkWell(
      onTap: onTap,
      child: Icon(
        // set size only if argument size != null
        icon,
        color: color,
      ),
    );
  }

As you can see this function has nullable argument size. And I need this parameter to be set only if it is not equal to null. If I add a check for null, then I will have to add a default value for the size parameter of the icon widget.

Is it possible to avoid setting the size parameter of Icon widget if the function argument is null ? Please, help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清风无影 2025-01-27 01:59:18

在这种特殊情况下,Iconsize 参数已经是可选的。如果未定义,它将设置为 24px,就像您这样定义方法一样:

buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size}) {
    return InkWell(
      onTap: onTap,
      child: Icon(
        icon,
        size: size ?? 24,
        color: color,
      ),
    );
  }

如所示 在 flutter 文档中

如果没有 IconTheme,或者没有指定显式大小,则默认为 24​​.0。

In this particular case, Icon's size parameter is already optional. If it's not defined, it will be set to 24px, like you defined your method like this:

buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size}) {
    return InkWell(
      onTap: onTap,
      child: Icon(
        icon,
        size: size ?? 24,
        color: color,
      ),
    );
  }

as seen in the flutter docs:

If there is no IconTheme, or it does not specify an explicit size, then it defaults to 24.0.

失去的东西太少 2025-01-27 01:59:18

您可以这样使用:

buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size = 10}) {
return InkWell(
  onTap: onTap,
  child: Icon(
    // set size only if argument size != null
    icon,
    color: color,
  ),
);

}

或:

 buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size}) {
size ??= 10;
return InkWell(
  onTap: onTap,
  child: Icon(
    // set size only if argument size != null
    icon,
    color: color,
  ),
);

}

You can use like this:

buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size = 10}) {
return InkWell(
  onTap: onTap,
  child: Icon(
    // set size only if argument size != null
    icon,
    color: color,
  ),
);

}

or:

 buildIcon(IconData icon, Color color, VoidCallback onTap, {double? size}) {
size ??= 10;
return InkWell(
  onTap: onTap,
  child: Icon(
    // set size only if argument size != null
    icon,
    color: color,
  ),
);

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文