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

Widget构造函数参数疑问:ReusableCard的cardChild默认值应设为?

解决ReusableCard中cardChild的默认值问题

cardChild是Widget类型,你可以根据实际需求选择以下几种默认值方案:

1. 空占位(推荐)

用SizedBox.shrink()作为默认值,它是一个不占用任何空间的轻量Widget,适合作为默认空内容,不会影响布局结构:

class ReusableCard extends StatelessWidget {
  ReusableCard({
    @required this.colour = Colors.red,
    this.cardChild = const SizedBox.shrink(),
  });

  final Widget cardChild;
  final Color colour;

  @override
  Widget build(BuildContext context) {
    return Container(
      child: cardChild,
      margin: const EdgeInsets.all(15.0),
      decoration: BoxDecoration(
        color: colour,
        borderRadius: BorderRadius.circular(10.0),
      ),
    );
  }
}

2. 带提示的占位

如果需要默认显示提示性内容,比如一个文本占位:

this.cardChild = const Center(child: Text('请传入自定义内容')),

在主类中抽象复用

主类里可以根据不同业务场景,灵活传入不同的Widget实现抽象复用,示例如下:

// 主类调用示例
ReusableCard(
  colour: Colors.blue,
  cardChild: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: const [
      Icon(Icons.access_alarm, size: 80),
      SizedBox(height: 15),
      Text('自定义卡片内容'),
    ],
  ),
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:00:55