我有一个自定义的小部件,其中90%的时间只有一个小部件,但根据某些条件,它可以是2或3,应该适合垂直。
@override
Widget build(BuildContext context)
{
List<Widget> children = [];
// Main widget
children.add(widget.child);
// Condition
if (condition1)
children.add(otherWidget);
// Condition
if (condition2)
children.add(anotherWidget);
return Column(children: children);
}
由于90%的情况下它只是一个小部件,我应该删除该列吗?
return children.length > 1 ? Column(children: children) : children.first;
我还没有在任何地方看到过这种逻辑,更常见的是保留column
并使用其中的条件:
@override
Widget build(BuildContext context)
{
return Column(children: [
widget.child,
if (condition1)
otherWidget,
if (condition2)
anotherWidget,
]);
}
我更喜欢后者,但是我应该为很可能会有一个不必要的列构建而烦恼吗?
(btw该小部件是具有许多子部件的ListView
的示例子部件,并且在该小部件内部将存在需要保持其状态的有状态小部件。)
1条答案
按热度按时间fykwrbwg1#
我建议您使用 Package 在可见性小部件中的Column和小部件(这样,如果不必要,您就不需要额外的小部件)