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

时间:2019-07-04 16:33:40

标签: 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 Item {
  final Icon icon;

  const Item ({
    @required this.icon,
  });
}

我想做的是这样

for (var item in items) {
  if (item.size == null)
    item.size = iconSize;
}

我面临的问题是,由于存在const构造函数,我无法设置大小。

我可以克隆现有的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,
    );
}

1 个答案:

答案 0 :(得分:1)

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

https://api.flutter.dev/flutter/widgets/IconTheme-class.html