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,
);
}