Flutter 如何在父窗口小部件上设置孩子的图标大小

Flutter 如何在父窗口小部件上设置孩子的图标大小,flutter,dart,Flutter,Dart,我正在创建一个小部件,我想在其中全局设置子小部件中使用的图标的大小 class ItemsContainer extends StatefulWidget { final List<Item> items; final double iconSize; //global default const ItemsContainer({ @required this.items, this.iconSize = 56.0, }); } class Ite

我正在创建一个小部件,我想在其中全局设置子小部件中使用的图标的大小

class ItemsContainer extends StatefulWidget {
  final List<Item> items;
  final double iconSize; //global default

  const ItemsContainer({
    @required this.items,
    this.iconSize = 56.0,
  });
}

class Item {
  final Icon icon;

  const Item ({
    @required this.icon,
  });
}
我面临的问题是,我无法设置大小,因为我有一个常量构造函数

我可以克隆一个现有的图标并更改原始大小,但是有更好的方法吗

Icon _getSizedIcon(Icon icon, double size) {
  return icon.size != null ? icon :
    Icon(icon.icon,
      size: size,
      color: icon.color,
      key: icon.key,
      semanticLabel: icon.semanticLabel,
      textDirection: icon.textDirection,
    );
}

IconTheme
小部件可能就是您想要的:


我在理解您的目标时遇到了一点困难。还有什么是
item.size
,因为item类甚至没有size属性。您能详细说明一下吗?项目有一个属性
小部件图标
,类型为icon。我可以把它改清楚。我想在列表中设置所有图标。我的问题没有那么精确,但在我的示例中。我想设置一个全局默认值,当提供子图标的大小时,可以覆盖该默认值。所以我不能将我的父控件包装到IconTheme中,我需要做的是将每个图标包装到IconTheme中。我不知道这是否比我的解决方案更有效,但它确实有效。IconTheme将为其子树中的所有图标设置选项,除非您在子树中插入另一个IconTheme或在特定图标上显式设置选项。
Icon _getSizedIcon(Icon icon, double size) {
  return icon.size != null ? icon :
    Icon(icon.icon,
      size: size,
      color: icon.color,
      key: icon.key,
      semanticLabel: icon.semanticLabel,
      textDirection: icon.textDirection,
    );
}