我正在创建一个小部件,我要在其中设置全局子部件中使用的图标的大小。
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,
);
}
答案 0 :(得分:1)
IconTheme
小部件可能是您想要的:
https://api.flutter.dev/flutter/widgets/IconTheme-class.html