You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何向自定义Widget类传递属性参数

Flutter自定义StatelessWidget传递命名属性的实现方法

你只需要给自定义Widget类声明对应final属性,同时实现命名参数形式的构造方法即可,修改后的完整代码如下:

class ToolbarToggle extends StatelessWidget {
  // 声明要接收的属性,StatelessWidget的属性必须为final类型
  final String label;

  // 实现构造函数:大括号包裹的参数为命名参数,必填参数加required修饰
  // 传入super.key是Flutter组件的标准最佳实践,构造加const修饰可提升性能
  const ToolbarToggle({
    super.key,
    required this.label,
  });

  @override
  Widget build(BuildContext context) {
    return Text(label);
  }
}

修改完成后你就可以直接用ToolbarToggle(label: 'a label')的形式调用组件。


补充说明

如果需要支持可选参数,只需要给参数设置默认值或者声明为可空类型即可,示例如下:

class ToolbarToggle extends StatelessWidget {
  final String label;
  // 可选参数,设置默认值
  final double fontSize;
  // 可选可空参数,无默认值
  final Color? textColor;

  const ToolbarToggle({
    super.key,
    required this.label,
    this.fontSize = 14,
    this.textColor,
  });

  @override
  Widget build(BuildContext context) {
    return Text(
      label,
      style: TextStyle(
        fontSize: fontSize,
        // 可空参数使用时做空安全处理
        color: textColor ?? Colors.black,
      ),
    );
  }
}

// 调用时可以选择是否传入可选参数
// ToolbarToggle(label: '测试', fontSize: 16, textColor: Colors.red)
// ToolbarToggle(label: '测试')

内容的提问来源于stack exchange,提问作者Walrus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 10:09:05